Spring MVC で webapp を開発し、maven でビルドしました。logback sl4j ロギング フレームワークを使用してロギングを改善したいのですが、まったくの初心者です。pom.xml を次のように変更します。
<!-- Spring 3 dependencies -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${spring.version}</version>
<exclusions>
<!--Exclude Commons Logging in favor of SLF4j-->
<exclusion>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
<!-- Logging -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.6.1</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>${logback.version}</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>${logback.version}</version>
</dependency>
次に、次の行をカスタム例外 DatabaseException に追加しました。
private final static Logger logger = (Logger) LoggerFactory.getLogger(DatabaseException.class);
...
public DatabaseException(Throwable cause) {
super(cause);
logger.log(Level.WARNING, cause.getMessage());
}
次に、クラスパス logback.xml 構成ファイルの下に追加しました。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- encoders are assigned the type
ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
</encoder>
</appender>
<logger name='org.springframework'>
<level value='INFO' />
</logger>
<root level="debug">
<appender-ref ref="STDOUT" />
</root>
</configuration>
したがって、この例外が発生すると、ログバックして標準出力にメッセージを出力しますが、何もしません。Tomcat を使用してアプリをデプロイして実行すると、コンテナー ログ [talledContainer]-INFO ... などのみが出力され、ロガーの痕跡がなく、その理由がわかりません。助けてもらえますか?