実行時に Zap ロガーのログ レベルを変更することは可能ですか?
Zap ロガーでログ レベルを動的に管理するには、AtomicLevel 機能を使用します。活用することができます。その方法は次のとおりです。
import ( "go.uber.org/zap" "go.uber.org/zap/zapcore" "os" ) func main() { // Set the underlying level to the default (DebugLevel) atom := zap.NewAtomicLevel() // Disable timestamps for deterministic logging encoderCfg := zap.NewProductionEncoderConfig() encoderCfg.TimeKey = "" // Create a logger with a JSON encoder and the atomic level logger := zap.New(zapcore.NewCore( zapcore.NewJSONEncoder(encoderCfg), zapcore.Lock(os.Stdout), atom, )) // Clean up resources when the program exits defer logger.Sync() // Log at the default level (DebugLevel) logger.Info("info logging enabled") // Change the atomic level to ErrorLevel atom.SetLevel(zapcore.ErrorLevel) // Log again, but at the new level (ErrorLevel) logger.Info("info logging disabled") }
この例では、アトム変数はアトミック レベルを表し、実行時に変更できます。 atom.SetLevel を呼び出すことで、ロガーのログ レベルを動的に変更できます。これにより、ログの詳細度を実行時に制御できるようになります。
以上がZap Logger のログ レベルは実行時に動的に変更できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。