Go で複数の宛先にメッセージを記録する方法
Go でメッセージを記録する場合、両方のコンソールにログを出力する必要がある場合があります。とファイルを同時に実行します。 log.SetOutput(logFile) を使用してメッセージをファイルのみに送信するのは簡単ですが、端末とターゲット ファイルの両方でのログ記録を有効にする方法もあります。
複数の宛先の実装
複数の宛先にログインするには、io.MultiWriter を利用します。その名前が示すように、MultiWriter は、Unix tee(1) コマンドと同様に、複数のライターへの同時書き込みを容易にします。
MultiWriter を使用してこれを実装する方法は次のとおりです。
import ( "os" "io" "log" ) func main() { logFile, err := os.OpenFile("log.txt", os.O_CREATE|os.O_APPEND|os.O_RDWR, 0666) if err != nil { panic(err) } // Initialize io.MultiWriter to write to both file and console mw := io.MultiWriter(os.Stdout, logFile) // Set output to MultiWriter log.SetOutput(mw) }
この例では, mw は、os.Stdout (コンソール) と logFile の両方に書き込む io.MultiWriter インスタンスです。 log.SetOutput(mw) を設定すると、後続のすべてのログ メッセージがコンソールに出力され、指定されたファイルに記録されます。
以上がGo でコンソールとファイルの両方にメッセージを記録するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。