ホームページ  >  記事  >  バックエンド開発  >  golangにログインする方法

golangにログインする方法

PHPz
PHPzオリジナル
2023-04-23 16:35:501099ブラウズ

Golang は、多くの点で他の言語よりも優れた効率的なプログラミング言語です。アプリケーションの動作を記録する場合、ログは重要なタスクです。 Golang では、アプリケーションのデバッグとテストにはログ記録が不可欠です。

この記事ではGolangにログインする方法を紹介します。標準ライブラリとサードパーティ ライブラリのロガーについて説明します。

標準ライブラリを使用してログを記録する

Golang の標準ライブラリには、簡単なログ記録方法を提供する「log」というパッケージがあります。このパッケージは、情報、警告、エラーの 3 つのレベルのログを提供します。

最初に、ロガーをインポートする必要があります。

import "log"
  1. 情報を記録する

「log.Println()」関数を呼び出して情報を記録します。メッセージを標準エラー出力に記録します。

log.Println("Record this info")

このコードは、次のような情報を出力します。

2019/11/22 20:04:14 Record this info
  1. 警告のログ記録

「log.Println()」を呼び出して警告をログに記録します。関数 。標準エラーに警告を記録し、メッセージの先頭に「WARN」を付加します。

log.Println("WARN: Warning message here")

このコードは、次のような情報を出力します。

2019/11/22 20:05:20 WARN: Warning message here
  1. エラーのログ記録

「log.Println()」を呼び出してエラーをログに記録します。関数 。エラーを標準エラーに記録し、メッセージの先頭に「ERROR」を付加します。

log.Panicln("ERROR: error message here")

このコードは、次のような情報を出力します。

2019/11/22 20:06:28 ERROR: error message here
panic: ERROR: error message here

goroutine 1 [running]:
log.Panicln(0xc42000e170, 0x1, 0x1)
        /usr/local/go/src/log/log.go:341 +0xc4
main.main()
        /root/go/src/main.go:10 +0x55
exit status 2

上記のコードは、プログラムをパニックさせます。エラーが発生した場合、プログラムはエラーをログに記録した後すぐに終了し、詳細なエラー情報を出力します。

ロギングにサードパーティ ライブラリを使用する

標準ライブラリによって提供されるロギング関数には制限があります。サードパーティのライブラリを使用してロギング機能を拡張できます。サードパーティのロギング ライブラリは豊富な機能を提供するため、アプリケーションのデバッグやテストにとってより実用的です。

ここでは、「go-logging」クラス ライブラリを例として取り上げます。複数のログ レベル (情報、警告、エラー、デバッグ) を記録できます。

最初に「go-logging」をインストールします:

go get github.com/op/go-logging

インポート ライブラリ:

import (
     "github.com/op/go-logging"
     "os"
)
  1. ロガーを初期化します

「logging」を使用します。 MustGetLogger()」関数を使用してロガーを初期化します。オプションで、名前をパラメータとして指定して、複数のロガー間で識別することができます。

var log = logging.MustGetLogger("example")
  1. ログ レベルの設定

ロガーを初期化した後、「log.SetLevel()」関数を使用してログ レベルを設定できます。この関数は、logging.Level タイプのパラメータ (デバッグ、情報、警告、エラーを含む) を受け入れます。

logging.SetLevel(logging.DEBUG, "example")
  1. ファイル ロガーの作成

「os.Create()」関数を使用してファイル ロガーを作成します:

logFile, err := os.Create("app.log")
if err != nil {
     log.Error("Cannot create log file", err)
}
defer logFile.Close()
  1. Createフォーマッタ

ログ ファイル エントリをフォーマットするためのフォーマッタを作成します:

formatter := logging.MustStringFormatter(
"%{time:2006/01/02 15:04:05.000} %{shortfile} %{level:.6s} %{message}")
  1. ファイル ロガーの構成

「logging.NewBackendFormatter()」を渡します。関数はファイル ロガーを作成します:

backend := logging.NewBackendFormatter(
 logging.NewLogBackend(logFile, "", 0),
 formatter)
  1. ファイル ロガーをロガーに追加します

ファイル ロガーを追加する前にファイルを記録する必要がありますロガーをバックエンドにラップします。

logging.SetBackend(backend)

または、複数のロガーを追加します:

logging.SetBackend(logging.MultiLogger(
     logging.MultiWriter(os.Stdout, logFile),
     logging.MultiWriter(os.Stderr, logFile),
))
  1. Logging

これで、レベル経由でロガーを使用してログ情報を「記録」できるようになります:

log.Infof("This is a info message with %d", 123)
log.Warningf("This is a warning message with %s", "param")
log.Errorf("This is a error message with %v", err)

上記のコードは、記録時にログをフォーマットし、ログ ファイルに書き込みます。

概要:

Golang の標準ライブラリは、簡単なログ記録方法を提供します。ただし、サードパーティのライブラリを使用すると、ロガーの動作と形式をより詳細に制御できるようになります。 「logging」ライブラリを使用すると、複数のログ レベルを記録し、ファイルに書き込むことができます。

以上がgolangにログインする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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