【发布时间】:2015-07-03 04:17:06
【问题描述】:
我正在尝试将某些内容记录到 maven 项目中。 我在这里找到了“howto”: Where does the slf4j log file get saved?
但是由于某种原因它不起作用(我找不到日志文件),我的错误是什么?
这是我的pom.xml:
<!-- Logger -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.12</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.12</version>
</dependency>
这是我的log4j.properties:
log4j.rootLogger=DEBUG, STDOUT, file
log4j.appender.STDOUT=org.apache.log4j.ConsoleAppender
log4j.appender.STDOUT.layout=org.apache.log4j.PatternLayout
log4j.appender.STDOUT.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=mylogs.log
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{dd-MM-yyyy HH:mm:ss} %-5p %c{1}:%L - %m%nF
这是我的应用程序:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
public class App {
// Log
private static final Logger log = LoggerFactory.getLogger(App.class);
public static void main(String[] args) {
log.info("App started");
Worker worker = new Worker();
worker.doWork();
log.debug("worker finished job");
log.debug("Main ends here");
}
}
【问题讨论】:
-
log4j.properties文件在哪个目录?另外,检查类路径。它是否同时包含jcl-over-slf4j和commons-logging?如果答案是肯定的,则在必要时使用排除项删除commons-logging。我的经验是这两个库不能很好地协同工作,因此我的日志文件没有显示出来。 -
log4j.properties在src\main\resources,有commons-logging,没有jcl-over-slf4j。删除commons-logging进行测试,仍然没有日志文件:( -
您在控制台中看到日志吗?
-
您的项目可能包含一个包含 log4j.properties/xml 文件的依赖项。这可能会覆盖您提供的属性。有过一次。
-
@yozh 我想,这可能是问题所在,但我对 maven 还很陌生,我该怎么办?