zap
zap copied to clipboard
怎么样输出错误日志到别外的一个文件中
配置这一项好像只会创建一个空文件,但是并没有输出到文件中。 "errorOutputPaths": ["stderr","/tmp/errs"]
以下是我的示例代码
rawJSON := []byte({
"level": "debug",
"encoding": "json",
"outputPaths": ["stdout", "/tmp/logs"],
"errorOutputPaths": ["stderr","/tmp/errs"],
"initialFields": {"foo": "bar"},
"encoderConfig": {
"messageKey": "message",
"levelKey": "level",
"levelEncoder": "lowercase"
}
}`)
var cfg zap.Config
if err := json.Unmarshal(rawJSON, &cfg); err != nil {
panic(err)
}
logger, err := cfg.Build()
if err != nil {
panic(err)
}
defer logger.Sync()
logger.Info("logger construction succeeded")
logger.Error("test error")
`
ErrorOutputPaths用于设置zap的内部错误输出而不是logger的error输出,如果你要实现error和info输出的分离,应该通过zapcore.NewTee设置多个输出并结合LevelEnabler来实现。具体可参照Example (AdvancedConfiguration)