「Struts2で slf4j+logback を使うには」の版間の差分
提供: tknotebook
8行: | 8行: | ||
logback に送られます。以下にこれらの pom.xml の dependency の設定を示します。 | logback に送られます。以下にこれらの pom.xml の dependency の設定を示します。 | ||
− | + | <pre> | |
<dependency> | <dependency> | ||
<groupId>ch.qos.logback</groupId> | <groupId>ch.qos.logback</groupId> | ||
24行: | 24行: | ||
<version>2.6.2</version> | <version>2.6.2</version> | ||
</dependency> | </dependency> | ||
+ | </pre> | ||
ログの出力先や形式はクラスパス内に置いた logback.xml で決まりますが、以下はその例ですが、 | ログの出力先や形式はクラスパス内に置いた logback.xml で決まりますが、以下はその例ですが、 |
2016年9月24日 (土) 22:27時点における版
メインページ>コンピュータの部屋#Java>Struts2 Tips
struts2はcommon-loggingとlog4jを使いますが、最近はロギングに slf4j + logback を利用されている方が 多いと思います。
以下のように log4j-core を抜き その代わりに slf4j+logback, log4j-to-slf4j、log4j-api を使えばログは全て logback に送られます。以下にこれらの pom.xml の dependency の設定を示します。
<dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.1.7</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-to-slf4j</artifactId> <version>2.6.2</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>2.6.2</version> </dependency>
ログの出力先や形式はクラスパス内に置いた logback.xml で決まりますが、以下はその例ですが、 この例では全てのログを標準出力と log/Trace.log に出力します。 log/Rolling.logには INFOレベル以上のログが出力され、一時間毎に Rolling-yyyy-MM-dd-hh.log にリネームされてローテーションします。最大30個、つまり最低30時間分のログを保持します。
<?xml version="1.0" encoding="UTF-8" ?> <configuration> <property name="LOG_DIR" value="c:/logback_logs" /> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>TRACE</level> </filter> <target>System.out</target> <encoder> <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{80} - %msg%n</pattern> </encoder> <withJasi>true</withJasi> </appender> <appender name="FILE" class="ch.qos.logback.core.FileAppender"> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>TRACE</level> </filter> <file>log/Trace.log</file> <encoder> <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{80} - %msg%n</pattern> </encoder> </appender> <appender name="ROLLING" class="ch.qos.logback.core.rolling.RollingFileAppender"> <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> <level>INFO</level> </filter> <file>log/Rolling.log</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>log/Rolling_%d{yyyy-MM-dd_HH}.log</fileNamePattern> <maxHistory>30</maxHistory> </rollingPolicy> <encoder> <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{80} - %msg%n</pattern> </encoder> </appender> <root level="TRACE"> <appender-ref ref="STDOUT"/> <appender-ref ref="FILE"/> <appender-ref ref="ROLLING"/> </root> </configuration>