仕事でlogbackを使用することになりました。
log4jではなくlogbackは初めてだったのでメモをとっておきます。
今回使用したlogbackのバージョンはこれ
・slf4j-api-1.6.1.jar
・logback-core-0.9.28.jar
・logback-classic-0.9.28.jar
1.mavenでプロジェクトを作成
コマンドプロンプトを立ち上げ、ロジェクトを作成したい場所に移動
下のコマンドを実行(SampleLogbackは好きなプロジェクト名にする)
mvn archetype:create -DgroupId=com.example -DartifactId=SampleLogback
2.各jarを取得する、作成したプロジェクトのpom.xmlに以下を追加
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.6.1</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>0.9.28</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>0.9.28/version>
</dependency>
コマンドプロンプトにて
mvn
を実行する
mavenがわからないなら、以下から取得してくる
2.各jarをパスに追加
3.logback.xmlをsrc/main/resouceにおく必要があるため、src/main/resouceをビルドパスのソースに追加する
4.src/main/resouce/logback.xmlを作成する
<!DOCTYPE logback>
<configuration>
<include resource="appenders.xml"/>
<logger name="com.example" level="DEBUG">
<appender-ref ref="LOG" />
<appender-ref ref="ERROR_LOG"/>
</logger>
<root>
<level value="INFO" />
<appender-ref ref="STDOUT1" />
</root>
</configuration>
appenderは別ファイルとして管理したいので別途、src/main/resouce/appenders.xmlを作成する
<included>
<appender name="STDOUT1" class="ch.qos.logback.core.ConsoleAppender">
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>%d{yyyy/MM/dd HH:mm:ss.SSS},%-5level,%logger#%M,[%L], %msg%n</Pattern>
</layout>
</appender>
<appender name="LOG" class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>c:/log/api.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>c:/log/api.log.%d{yyyyMMdd}</FileNamePattern>
</rollingPolicy>
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>%d{yyyy/MM/dd HH:mm:ss.SSS}, %-5level, %logger#%M, [%L], %msg%n</Pattern>
</layout>
</appender>
<!-- ERRORレベルのみ出力する -->
<appender name="ERROR_LOG" class="ch.qos.logback.core.rolling.RollingFileAppender">
<File>c:/log/error.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>c:/log/error.log.%d{yyyyMMdd}</FileNamePattern>
</rollingPolicy>
<layout class="ch.qos.logback.classic.PatternLayout">
<Pattern>%d{yyyy/MM/dd HH:mm:ss.SSS}, %-5level, %logger#%M, [%L], %msg%n</Pattern>
</layout>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>
</appender>
</included>
5.com..example.App.javaが作成されているのでこちらにログを設定してみる
public static void main(String[] args) {
logger bb = LoggerFactory.getLogger(App.class);
bb.debug("{}x", new Object[]{"test-> "});
bb.info("y");
bb.error("z");
}
6.アプリを起動すればこんな感じで出力されました。
2011/12/07 13:38:33.952,DEBUG,com.example.App#main,[16], test-> x
2011/12/07 13:38:33.955,INFO ,com.example.App#main,[17], y
2011/12/07 13:38:33.956,ERROR,com.example.App#main,[18], z
参考サイト
最近のコメント