Logback日志记录无效

时间:2013-05-03 09:11:08

标签: spring maven slf4j logback

我有一个使用maven构建的Spring MVC简单地址簿项目。我想使用Logback进行日志记录,但我完全不熟悉它; 首先我用这种方式改变了我的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>

然后我将这些行添加到我的自定义Exception DatabaseException:

private final static Logger logger = (Logger) LoggerFactory.getLogger(DatabaseException.class);

...

public DatabaseException(Throwable cause) {
    super(cause);
    logger.log(Level.WARNING, cause.getMessage());
}

所以当我在其他类中出现这个异常时,日志能够打印到粗略的一些消息,但是没有工作,当我在Tomcat上运行maven时它只打印容器日志[talledContainer] INFO ....等好像我的记录器不存在

2 个答案:

答案 0 :(得分:2)

对于您的DatabaseException使它工作,您的DatabaseException应该是这样的:

package org.myorg.myapp;

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

public class DatabaseException extends Exception {

  private final static Logger logger = LoggerFactory.getLogger(DatabaseException.class);

  public DatabaseException(Throwable cause) {
    super(cause);
    logger.warn(cause.getMessage());
  }
}

此外,您需要在pom.xml中包含jcl-over-slf4j依赖项。

<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>jcl-over-slf4j</artifactId>
  <version>1.6.1</version>
  <scope>runtime</scope>
</dependency>

我建议阅读参考文档(使用SLF4J部分)。 http://static.springsource.org/spring/docs/3.2.x/spring-framework-reference/html/overview.html

希望这有帮助。

答案 1 :(得分:1)

您尚未提及有关 logback.xml 的任何内容。您应该在 src / main / resources 文件夹下创建一个。