小编Efi*_*fim的帖子

如何配置仅在错误级别写入输出的自定义 zap 记录器?

I\xe2\x80\x99m 尝试构建一个自定义记录器,将日志消息保持在缓冲区中的错误级别以下,并仅在遇到错误后刷新缓冲区。

\n

问题是我不\xe2\x80\x99不知道在遇到错误时如何触发将日志刷新到输出(同步方法)。

\n

下面的代码是这样做的尝试:

\n
func CustomLogger() {\n   // First, define our level-handling logic.\n   lowPriority := zap.LevelEnablerFunc(func(lvl zapcore.Level) bool {\n      return lvl < activationLevel\n   })\n   //define the output of the logs\n   customWriteSyncer := Buffer(os.Stdout)\n\n   consoleEncoder := zapcore.NewConsoleEncoder(zap.NewDevelopmentEncoderConfig())\n   zapcore.NewJSONEncoder(zap.NewProductionEncoderConfig())\n\n   //creates a Core that writes logs to a WriteSyncer\n   core := zapcore.NewCore(consoleEncoder, customWriteSyncer, lowPriority)\n\n   logger := zap.New(core)\n\n   defer logger.Sync()\n  \n   Logger = logger\n}\n\ntype BufferWriterSync struct {\n   buf *bufio.Writer\n}\n\nfunc Buffer(ws zapcore.WriteSyncer) zapcore.WriteSyncer {\n   bw := &BufferWriterSync{\n      buf: bufio.NewWriter(ws),\n   }\n   ws = …
Run Code Online (Sandbox Code Playgroud)

logging go go-zap

5
推荐指数
1
解决办法
5825
查看次数

标签 统计

go ×1

go-zap ×1

logging ×1