VictoriaMetrics/lib/logger/json_fields.go

47 lines
1 KiB
Go
Raw Permalink Normal View History

package logger
import (
"flag"
"log"
"strings"
)
var loggerJSONFields = flag.String("loggerJSONFields", "", `Allows renaming fields in JSON formatted logs. `+
`Example: "ts:timestamp,msg:message" renames "ts" to "timestamp" and "msg" to "message". `+
"Supported fields: ts, level, caller, msg")
func setLoggerJSONFields() {
if *loggerJSONFields == "" {
return
}
fields := strings.Split(*loggerJSONFields, ",")
for _, f := range fields {
f = strings.TrimSpace(f)
v := strings.Split(f, ":")
if len(v) != 2 {
log.Fatalf("missing ':' delimiter in -loggerJSONFields=%q for %q item", *loggerJSONFields, f)
}
name, value := v[0], v[1]
switch name {
case "ts":
fieldTs = value
case "level":
fieldLevel = value
case "caller":
fieldCaller = value
case "msg":
fieldMsg = value
default:
log.Fatalf("unexpected json field name in -loggerJSONFields=%q: %q; supported values: ts, level, caller, msg", *loggerJSONFields, name)
}
}
}
var (
fieldTs = "ts"
fieldLevel = "level"
fieldCaller = "caller"
fieldMsg = "msg"
)