0

我有一个使用 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>

然后我将此行添加到我的自定义异常 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 .... 等等似乎就像我的记录器不存在

4

2 回答 2

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

希望这可以帮助。

于 2013-05-03T16:12:08.790 回答
1

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

于 2013-05-03T09:38:49.560 回答