2010年2月25日木曜日

[java]logback+slf4jでロギング

どうも、俺@仕事中です。
今日はlogbackを使ってログを取得する方法をメモします。
※OS:CentOS 4.3
※java:1.6.0_18

ライブラリを以下から取得。
Logback:http://logback.qos.ch/
SLF4j:http://www.slf4j.org/

ダウンロードしたアーカイブを解凍して、
slf4j-api-1.5.10.jar
logback-core-0.9.18.jar
logback-classic-0.9.18.jar
をjavaのCLASSPATHに通します。

では、サンプルソース。

import org.slf4.Logger;
import org.slf4j.LoggerFactory;

public class LogSample {
private static Logger logger = LoggerFactory.getLogger(LogSample.class);

public static void main(String[] args) {
logger.info("INFO");
logger.debug("DEBUG");
}
}

で、設定ファイル(logback.xml)を作成します。これもCLASSPATHの通ったディレクトリへ設置します。
<?xml version="1.0" encoding="UTF-8" ?>
<configuration>
<!-- ファイル出力 -->
<appender name="FILE_OUT" classs="ch.qos.logback.core.rolling.RollingFileAppender">
<File>sample.log</File>
<layout class="ch.qos.logback.classic.PatternLayout">
<pattern>%d{yyyy/MM/dd HH:mm:ss} %-5level [%thread] %class{0} %line : %msg %n</pattern>
</layout>

<!-- 日付でローテート -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>sample.%d{yyyy_MM_dd}.log</FileNamePattern>
</rollingPolicy>
</appender>



# <!-- ファイルサイズでローテート -->
# <appenderclass="ch.qos.logback.core.rolling.RollingFileAppender">
# <File>sample.log</File>
# <layout class="ch.qos.logback.classic.PatternLayout">
# <pattern>%d{yyyy/MM/dd HH:mm:ss} %-5level [%thread] %class{0} %line : %msg %n</pattern>
# </layout>
# <rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
# <FileNamePattern>sample.log.%i</FileNamePattern>
# <MinIndex>1</MinIndex>
# <MaxIndex>10</MaxIndex>
# </rollingPolicy>
# <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
# <MaxFileSize>512MB</MaxFileSize>
# </triggeringPolicy>
# </rollingPolicy>
# </appender>


<logger name="com.blogger.koexuka.app">
<level value="warn" />
<appender-ref ref="FILE_OUT" />
</logger>
以上どぇぇーす。