[Elixir]CustomLoggerのコードを追う

[Elixir]Loggerのconsole出力をファイルに書き出すではlogger_file_backendを使う、ところを残しました。そのついでに、CustomLogger付近とその作り方を見てみました。

参考:

これを理解するために、ElixirのLoggerの実装群や、 GenEvent 付近が理解を助けてくれます。

私も参考で貼ったスライドを参考に、練習のためにCustomLoggerを書いてみました。consoleの実装箇所を参考にすればここら辺もかける感じ。

このように書くことで、Phoenix上でも利用することができます。

config :logger,
format: "$time $metadata[$level] $message\n",
metadata: [:request_id],
backends: [MyLogger]

実行したら、こんな感じのログがコンソールに表示されます。

[:info, "Running WebQaVote.Endpoint with Cowboy using http on port 4000"]

ここまで見てlogger_file_backendを見てみると、その違いはログを File.open/3File.close/1 を使ってファイルに書き出したりしているのですね。

https://github.com/onkel-dirtus/logger_file_backend/blob/master/lib/logger_file_backend.ex

なるほど。学び。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中