2013-05-03 125 views
0

我有一个Spring MVC简单地址簿项目与maven构建。我想使用Logback进行日志记录,但我完全不熟悉它; 首先,我改变了我的pom.xml这样:Logback日志记录不工作

<!-- 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 ....等等。 ke我的记录器不存在

+0

我认为标题有误导 – 2013-05-03 09:31:24

+0

您需要配置记录器。这在大多数情况下在xml或属性中完成 – 2013-05-03 09:33:21

+0

请合并这两个问题,并请不要发布重复项。人们很难帮助你。 – 2013-05-03 14:43:02

回答

1

您还没有提及任何有关logback.xml。您应该在src/main/resources文件夹下创建一个。

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-过度依赖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

希望这会有所帮助。

+0

非常感谢您的回复,现在它的工作 – andPat 2013-05-04 09:43:34

+0

添加jlc依赖和导入我的类slf4j.logger和slf4j.LoggerFactory它工作正常 – andPat 2013-05-04 09:45:07

+0

谢谢,这是很好的解决方案。我的项目也适用... – Vito 2014-06-10 09:19:35