I\xe2\x80\x99m 尝试构建一个自定义记录器,将日志消息保持在缓冲区中的错误级别以下,并仅在遇到错误后刷新缓冲区。
\n问题是我不\xe2\x80\x99不知道在遇到错误时如何触发将日志刷新到输出(同步方法)。
\n下面的代码是这样做的尝试:
\nfunc 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)