zap icon indicating copy to clipboard operation
zap copied to clipboard

怎么样输出错误日志到别外的一个文件中

Open honorcao opened this issue 7 years ago • 1 comments

配置这一项好像只会创建一个空文件,但是并没有输出到文件中。 "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")

`

honorcao avatar Oct 17 '18 17:10 honorcao

ErrorOutputPaths用于设置zap的内部错误输出而不是logger的error输出,如果你要实现error和info输出的分离,应该通过zapcore.NewTee设置多个输出并结合LevelEnabler来实现。具体可参照Example (AdvancedConfiguration)

kurefm avatar Oct 28 '18 15:10 kurefm