[Elixir]Loggerのconsole出力をファイルに書き出す

少しLogに関する知見を得たので、 logger_file_backend とか使ってみることにしました。後でちゃんとCustomLoggerの知見を貯めておこう。

経緯

通常、Loggerはconsoleに書き出されます。しかし、そのままではIOが大変ですし、ファイルに書き出したりしていきたいです。そのため、ログをファイル出力する形にしたいなーと考えていました。

CustomLogger

ElixirのLogger のドキュメントを少し読んでみると、デフォルトでは :console としてコンソールに結果が出力され、そこからカスタムするときはCustomLoggerを作れるよ、と書いています。

Custom backends を読んでみると、 GenEvent を使ってCustomLoggerを作ることができるのですね。そこで簡単なファイルへ書き出すCustomLoggerを作ろうとは思ったのですが、通常のLoggerの結果をファイルに書き出す、というシンプルなreposirotyを見つけたので、ひとまずはそれを使ってみることにしました。

Logger_file_backend

他に、Erlangのlagerをラップしたexlagerというのもあるのですが、Phoenixと一緒に使う方法とか探しているとElixirに組み込まれているLoggerを操作する系の方が安易だったので見送りました。

参考


導入した時の、サンプルプロジェクトのコミット

https://github.com/KazuCocoa/web_qa_vote/commit/035f5cd6e451cd84d5c3e4304cc0853e8ccf0672

コメントを残す

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

WordPress.com ロゴ

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

Twitter 画像

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

Facebook の写真

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

Google+ フォト

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

%s と連携中