JavaScriptを有効にしてください

【Elixir】logger_file_backend を使用してログをファイルに出力する方法

 ·  ☕ 2 分で読めます

【Elixir】logger_file_backend を使用してログをファイルに出力する方法

Elixir で logger_file_backend を使用してログをファイルに出力する方法を紹介します。

環境

  • Elixir 1.14.2

logger_file_backend

Elixir では、標準で Logger モジュールが提供されており、これを利用して簡単にログを取得できます。
ただし、デフォルトでは標準出力にログが出力されるため、ファイルに出力するには logger_file_backend というライブラリを使うことで実現できます。

logger_file_backend のインストール

まず、logger_file_backend をプロジェクトに追加します。
mix.exsdeps 関数に以下のコードを追加してください。

1
2
3
4
5
defp deps do
  [
    {:logger_file_backend, "~> 0.0.10"}
  ]
end

次に、ターミナルで mix deps.get コマンドを実行し、依存関係を取得してください。

設定ファイルの編集

次に、ログ出力の設定を行います。
config/config.exs ファイルに以下の設定を追加してください。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
# ロガーの設定
config :logger,
  backends: [{LoggerFileBackend, :info_log}, {LoggerFileBackend, :error_log}, :console]

# infoログの設定
config :logger, :info_log,
  level: :info,
  path: "log/info.log",
  format: "$time $metadata[$level] $message\n",
  metadata: [:request_id]

# errorログの設定
config :logger, :error_log,
  level: :error,
  path: "log/error.log",
  format: "$time $metadata[$level] $message\n",
  metadata: [:request_id]

この設定では、log/info.log に情報レベル(:info)のログが、log/error.log にエラーレベル(:error)のログがそれぞれ出力されるようになります。また、ログのフォーマットやメタデータも指定できます。

ログの出力

設定が完了したら、あとは通常通り Logger モジュールを使用してログを出力できます。

たとえば、以下のように Logger.info/2Logger.error/2 を使ってログを出力できます。

1
2
Logger.info("情報レベルのログです。")
Logger.error("エラーレベルのログです。")

これで、指定したファイルにログが出力されるようになります。

参考

共有

こぴぺたん
著者
こぴぺたん
Copy & Paste Engineer