Go でコンソールとファイルの両方にログインするにはどうすればよいですか?

Linda Hamilton
リリース: 2024-11-16 17:51:03
オリジナル
933 人が閲覧しました

How to Log to Both Console and File in Go?

Go でコンソールとファイルの両方にログを記録する

Go では、log.SetOutput(logFile) を使用して、ログ メッセージをファイルに簡単に送信できます。 )。しかし、これらのメッセージをコンソールにも表示したい場合はどうすればよいでしょうか?

io.MultiWriter の使用

これを実現するには、io.MultiWriter を使用します。これにより、提供されたすべてのライターに書き込みを複製するライターが作成されます。これは、Unix tee(1) コマンドに似ています。

logFile, err := os.OpenFile("log.txt", os.O_CREATE|os.O_APPEND|os.O_RDWR, 0666)
if err != nil {
    panic(err)
}

// Create a MultiWriter that writes to both the console and the file.
mw := io.MultiWriter(os.Stdout, logFile)

// Set the logger's output to the MultiWriter.
log.SetOutput(mw)
ログイン後にコピー

この例では、元のコードからの唯一の変更は、io.MultiWriter の作成とそれにロガーの出力を設定することです。これで、すべてのログ メッセージがコンソールと指定されたファイルの両方に書き込まれ、永続的なログを維持しながらリアルタイムでログを監視する便利な方法が提供されます。

以上がGo でコンソールとファイルの両方にログインするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート