Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 缺少slf4j日志文件_Java_Maven_Log4j_Slf4j - Fatal编程技术网

Java 缺少slf4j日志文件

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

我正试图在maven项目中记录一些文件。 我在这里找到了“howto”:

但它不工作(我找不到日志文件)出于某种原因,我的错误是什么

这是我的
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");

    }
}