Java 缺少slf4j日志文件
我正试图在maven项目中记录一些文件。 我在这里找到了“howto”: 但它不工作(我找不到日志文件)出于某种原因,我的错误是什么 这是我的Java 缺少slf4j日志文件,java,maven,log4j,slf4j,Java,Maven,Log4j,Slf4j,我正试图在maven项目中记录一些文件。 我在这里找到了“howto”: 但它不工作(我找不到日志文件)出于某种原因,我的错误是什么 这是我的pom.xml: <!-- Logger --> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <vers
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>
这是我的应用程序:
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。属性< /代码>,但是如果不可能(F.E.3D Prand LIB),那么考虑上面概述的Log4J配置文件名永久性的更改。
通常,
mylogs.log
应该位于启动程序的目录中。例如,如果它是从IDE(比如IDEA)启动的,那么应该在项目目录中创建日志文件。如果您自己从target/classes
的命令行执行此操作,日志文件将分别写入该目录。我非常理解,我甚至在“我的电脑”中搜索了此日志文件。没有结果…文件log4j.properties
位于哪个目录?另外,检查类路径。它是否同时包含jcl-over-slf4j
和commons日志记录
?如果答案是肯定的,则在必要时使用排除项删除commons日志记录
。我的经验是,这两个库不能很好地配合使用,因此我有一个日志文件没有显示。log4j.properties
位于src\main\resources
,有commons日志记录
,没有jcl-over-slf4j
。删除了测试的commons logging
,仍然没有日志文件:(您在控制台中看到日志了吗?您的项目可能包含一个包含log4j.properties/xml文件的依赖项。这可能会覆盖您提供的属性。有一次。@yozh我想,这可能是问题所在,但我对maven来说是个新手,我该怎么办?
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");
}
}