ответвлён от boyska/circolog
32 строки
1,1 КиБ
Go
32 строки
1,1 КиБ
Go
package data
|
|
|
|
import "gopkg.in/mcuadros/go-syslog.v2/format"
|
|
|
|
// Message is currently an alias for format.Logparts, but this is only temporary; sooner or later, a real struct will be used
|
|
// The advantage of having an explicit Message is to clear out what data we are sending to circolog "readers"
|
|
// This is not necessarily (and not in practice) the same structure that we receive from logging programs
|
|
type Message format.LogParts
|
|
|
|
// LogEntryToMessage converts messages received from writers to the format we promise to readers
|
|
func LogEntryToMessage(orig format.LogParts) Message {
|
|
m := Message{}
|
|
if orig["version"] == 1 { // RFC5424
|
|
m["prog"] = orig["app_name"]
|
|
m["client"] = orig["client"]
|
|
m["host"] = orig["hostname"]
|
|
m["proc_id"] = orig["proc_id"]
|
|
m["msg"] = orig["message"]
|
|
m["facility"] = orig["facility"]
|
|
m["time"] = orig["timestamp"]
|
|
m["sev"] = orig["severity"]
|
|
} else { //RFC3164
|
|
m["prog"] = orig["tag"]
|
|
m["client"] = orig["client"]
|
|
m["host"] = orig["hostname"]
|
|
m["msg"] = orig["content"]
|
|
m["sev"] = orig["severity"]
|
|
m["time"] = orig["timestamp"]
|
|
m["proc_id"] = "-"
|
|
}
|
|
return m
|
|
}
|