ホームページ >バックエンド開発 >Golang >Go アプリケーションでのログインを無効にする方法は?

Go アプリケーションでのログインを無効にする方法は?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-15 11:35:02586ブラウズ

How to Disable Logging in Go Applications?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。