【问题标题】:Logback logging not workingLogback 日志记录不起作用
【发布时间】:2013-04-27 16:10:29
【问题描述】:

我有一个使用 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 .... 等等似乎我的记录器不存在

【问题讨论】:

  • 我认为标题具有误导性
  • 您需要配置记录器。在大多数情况下,这是在 xml 或属性中完成的
  • 两个问题请合并,请勿重复发帖。人们很难帮助你。

标签: spring maven slf4j logback


【解决方案1】:

为了让你的 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

希望这会有所帮助。

【讨论】:

  • 添加 jlc 依赖并在我的类 slf4j.logger 和 slf4j.LoggerFactory 中导入它工作正常
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2017-05-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-19
    • 2015-01-09
    • 1970-01-01
    • 2018-08-24
    • 2011-12-27
    相关资源
    最近更新 更多