[英]slf4j log file missing
我正在尝试将某些内容记录到Maven项目中。 我在这里找到了“ howto”: slf4j日志文件保存在哪里?
但是由于某种原因它不起作用(我找不到日志文件),我的错误是什么?
这是我的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/xml
文件的依赖项。 这可能会覆盖您提供的属性。 为了进行检查,首先,尝试对具有log4j配置的文件使用不同的名称:将其重命名为例如app-log4j.properties
并在启动时指定它: -Dlog4j.configuration=app-log4j.properties
。 如果确实有效,那么确实存在冲突。 最好的办法是从依赖项中删除log4j.properties
,但是如果不可能(例如3d方lib),则考虑使上述概述的log4j配置文件名的更改永久生效。
通常, mylogs.log
应该位于启动程序的目录中。 例如,如果它是从IDE(例如IDEA)启动的,则应在项目目录中创建日志文件。 如果您通过命令行从target/classes
自己执行此操作,则日志文件将分别写入该目录。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.