使用Spring MVC进行日志记录不起作用

时间:2013-05-03 09:34:56

标签: spring maven logging slf4j logback

我使用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());
}

然后我在classpath 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>

所以当我提出这个异常时,我会回溯打印到stdout一些消息但没有。 当我使用tomcat部署并运行应用程序时,它只打印容器日志[talledContainer] -INFO ...等等,并且没有我的记录器的痕迹,我不明白为什么,你能帮助我吗?

0 个答案:

没有答案