gpt4 book ai didi

java - slf4j 日志文件丢失

转载 作者:行者123 更新时间:2023-12-02 04:43:58 32 4
gpt4 key购买 nike

我正在尝试将一些内容记录到 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/xml 文件的依赖项。这可能会覆盖您提供的属性。为了检查这一点,首先,尝试使用 log4j 配置的文件使用不同的名称:将其重命名为例如app-log4j.properties 并在启动时指定:-Dlog4j.configuration=app-log4j.properties。如果确实有效,那么确实存在冲突。最好的方法是从依赖项中删除 log4j.properties,但如果不可能(例如 3d-party lib),则考虑将上述 log4j 配置文件名的更改永久化。

一般来说,mylogs.log 应该位于您启动程序的目录中。例如,如果它是从 IDE(例如 IDEA)启动的,则应在项目目录中创建日志文件。如果您自己从 target/classes 的命令行执行此操作,日志文件将分别写入该目录。

关于java - slf4j 日志文件丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29849533/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com