[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

なるほど。学び。

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s