Go のデフォルト ロガーを無効にする
多くの Go アプリケーションは、ログ記録にログ パッケージを使用します。デフォルトでは、標準ロガーは標準出力に書き込みますが、場合によっては冗長になることがあります。ログを無効にする必要がある場合、考慮すべきアプローチがいくつかあります。
1 つのオプションは、ログ呼び出しを行う前にフラグを手動でチェックするか、本番環境でコメントアウトすることです。ただし、ロギングを無効にするより洗練された効率的な方法は、ロガーの出力をリダイレクトすることです。
io/ioutil.Discard を使用する
Go 1.16 より前では、次の 1 つの方法がありました。ロギングの無効化には、出力を破棄するカスタム io.Writer タイプの作成が含まれます。これは、Write メソッドを実装し、データを破棄させる構造体を定義することで実現できます:
type discardWriter struct{} func (w discardWriter) Write(p []byte) (n int, err error) { return len(p), nil }
その後、このカスタム ライターを使用してロガーの出力をリダイレクトできます:
import ( "log" "io/ioutil" ) func init() { log.SetOutput(ioutil.Discard) }
この設定では、ロガーは標準出力に書き込んでいるように見えますが、出力は黙って破棄されます。
io.Discard の使用 (Go 1.16 )
Go 1.16 以降では、より単純なアプローチが利用可能です。 io/ioutil パッケージは、書き込まれたすべてのデータを破棄する Discard ライターを提供します。次のように直接使用できます:
log.SetOutput(io.Discard)
これにより、標準ロガーのログが完全に無効になります。
以上がGo アプリケーションでのログインを無効にする方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。