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" )