Blog3この広告は、90日以上更新していないブログに表示しています。IDEAJavaの潤沢なライブラリが使えるScalaですが、そのまま使おうとしてもあまりイケてないことが多いです。Frameworkのplay.api.Loggerを使っていると、通常はメッセージを渡す代わりに関数を渡せます。そのためメッセージ文字列の生成を指定したログレベルが有効な時に限定できたりして実にScalaっぽいです。今回はScalaLoggingというものがあるということなので使ってみました。Scala入門記の目次はこちらです。ScalaLoggingScalaのマクロを使って、logger.isDebugEnabled等の判断をコンパイル時に追加しているらしいです。PlayのLoggerはLoggerをラップして対応しているところをマクロで対応しているということですね。sbtの設定GitHubのドキュメントにはsbtの依存ライブラリに以下を追加するように書かれています。"1.0.1"流し読みしてこれだけ設定すると、Loggerの実装がないという旨の以下のようにメッセージが出ます。Log4j2かを選択してsbtで設定しなければならないです。SLF4JSLF4Jを使うためにまずはこちらのサイトを参考に以下のように設定してみました。"1.0.13")この設定をしたうえで入門記006で使ったHelloオブジェクトを以下のように変更しました。run"するとログが表示されるようになりました。Log4j2まだbetaですがLog4jの2.0系のライブラリも使えます。こちらはライブラリへの依存に加え、最低限動かすにも設定ファイル(log4j2.xml)が必要です。"2.0-beta9")また、src/main/resources/log4j2.xmlは以下のように設定しました。</loggers></configuration>ソースコードはpackageの指定のところだけがSLF4Jと異なります。run"するSLF4Jと同様にログが表示されるようになりました。IDEAで表示してみました。追加前SLF4JLog4j2ソースコード今回の記事で使ったソースコードは以下のGitリポジトリの2つのタグです。https://github.com/thachi/scala-sample-001007-log4j007-slf4jまとめどのくらい使われているのかはわかりませんが、今回はScalaLoggingというものを使ってみました。私はplay.api.Loggerのような対応が方が好みですが、コンパイル時に解決できるこちらの方がエコですよね。実装の選択についてはサクッと試すにはSLF4Jの実装が楽そうです。Log4j2は使ったことがなかったので今後は使ってみたいと思っています。Scala入門記の目次はこちらです。newテンプレートこんにちは。珍しく短い間隔でBlogを書いてます。北海道にも短い夏がやってきました。Engineご無沙汰してます。sbtでServlet開発だいぶ時間が開いてしまいましたが元気です。(1)月別アーカイブ検索リンクはてなブログブログをはじめる(無料)お知らせはてなブログをはじめよう!t_hachinoheさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。