SLF4JはFacadeライブラリで、Logbackはロガー実装。
SLF4Jをダウンロードしてきて次のjarをクラスパスに通す。
SLF4Jをダウンロードしてきて次のjarをクラスパスに通す。
- slf4j-api-1.6.1.jar
Logbackをダウンロードしてきて同様に次のjarをクラスパスに通す。
- logback-core-0.9.27.jar
- logback-classic-0.9.27.jar
coreは文字通りコアライブラリでこれがないとLogbackが動きません。
classicはslf4jのバインディングに必要な実装が入っている(?)らしい。
以下ようなlogback.xmlを書いてクラスパスの通ったディレクトリに放りこみます。下記の例ではカレントディレクトリのlog/development.logにもログを出力する設定にしています。
logback.xmlにはシステムプロパティも書き込めるみたいです。
Chapter 3: Configuration
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>${user.dir}${file.separator}log${file.separator}development.log</file>
<encoder>
<pattern>%date %level [%thread] %logger{10} [%file:%line] %msg%n</pattern>
</encoder>
</appender>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- encoders are by default assigned the type
ch.qos.logback.classic.encoder.PatternLayoutEncoder -->
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<root level="debug">
<appender-ref ref="FILE" />
<appender-ref ref="STDOUT" />
</root>
</configuration>
で、ログを出したいクラスに
// フィールドにloggerを取得
final Logger logger = LoggerFactory.getLogger(HelloWorld.class);
// ログ
logger.info("hello, world.");
今日、Javaのシステムプロパティっていうのを知ったのですが、すごくいいですね。今までxmlファイルとかに${catalina.home}とか書いてあって、「これどこで定義してるんだろう?」って思っていたのですが、これでログファイルの出力先を絶対パスで書かなくてよくなりました。
投稿者紹介
-
私たちは、テクノロジに魅せられた個性あふれるメンバーによって構成された茨城県日立市に本社を構えるベンチャー企業です。
”テクノロジを通して「驚き」と「感動」を創造し、人々の「夢」と「笑顔」を支えます。” の経営理念をモットーに明るい未来を描き、ワクワクする企画提案を続けて参ります。
最近のエントリ
- レポート2019.10.28ユニキャストレストランを開催しました🍳
- レポート2019.08.29社内研修ワークショップ~マシュマロ・チャレンジ~
- レポート2019.08.06Computex/InnoVEX 出展者・通訳として参加してきました。
- レポート2018.06.12Computex 2018 レポート
Thanks for your note.