ロギング
logger モジュールは debug、info、warn、error レベルの構造化メッセージを書き込みます。
このページは API リファレンスです。各スニペットは独立したログ操作で、必要なロガー設定を持つ実行コンテキストを前提とします。
ログ呼び出しに戻り値はありません。実行コンテキストから取得できる場合は、現在のフレームから導出したプロセス pid とソース location も追加されます。
ロード
local logger = require("logger")
ログレベル
logger:debug
debug レベルのログメッセージを書き込みます。
logger:debug("message", {key = "value"})
logger:info
info レベルのログメッセージを書き込みます。
logger:info("message", {key = "value"})
logger:warn
warning レベルのログメッセージを書き込みます。
logger:warn("message", {key = "value"})
logger:error
error レベルのログメッセージを書き込みます。
logger:error("message", {key = "value"})
4 つのログレベルメソッドはすべて同じパラメータを受け取ります。
| パラメータ | 型 | 説明 |
|---|---|---|
message |
string | ログメッセージ |
fields |
table? | コンテキストのキーバリューペア |
フィールド名になるのは文字列キーだけです。文字列、数値、整数、真偽値、エラー、および構造化された Lua 値はログフィールドに変換され、文字列以外のキーは無視されます。
logger:error では、error という名前のフィールドはエラーフィールドとして出力され、残りのフィールドを処理する前に渡されたテーブルから削除されます。error エントリを保持する必要がある場合、そのテーブルを再利用しないでください。
ロガーのカスタマイズ
logger:with
永続フィールド付きの子ロガーを作成します。
local function request_logger(request_id)
return logger:with({request_id = request_id})
end
request_logger("req-123"):info("message")
| パラメータ | 型 | 説明 |
|---|---|---|
fields |
table | すべてのログに付加するフィールド |
戻り値: Logger
元のロガーは変更されません。子ロガーにはさらに with や named を連結できます。
logger:named
名前付きの子ロガーを作成します。
local named = logger:named("auth")
named:info("message")
| パラメータ | 型 | 説明 |
|---|---|---|
name |
string | ロガー名 |
戻り値: Logger
エラー
logger:named("") はエラー値を返す代わりに Lua の引数エラー(name cannot be empty)を送出します。ロギングメソッドは何も返しません。
エラーの処理についてはエラー処理を参照。
ログメソッドは構造化エラーを返しません。無効な引数型では Lua の引数エラーが発生します。実行コンテキストにロガーが接続されていない場合、モジュールは no-op ロガーを使用し、メッセージを破棄します。