我已经把log4j放到了我的buildpath中,但是当我运行我的应用程序时,我得到了以下消息:

log4j:WARN No appenders could be found for logger (dao.hsqlmanager).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

这些警告是什么意思?这里的阑尾是什么?


当前回答

我在使用log4j2时也遇到了同样的问题。我的问题是由使用错误的依赖库引起的:

<dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-log4j12</artifactId>
        <scope>runtime</scope>
    </dependency>

相反,我应该使用:

<dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-slf4j-impl</artifactId>
        <scope>runtime</scope>
    </dependency>

在我的情况下,我有一个log4j2.xml定义在我的“资源”目录,并指定使用它:

System.setProperty("log4j.configurationFile", "log4j2.xml");

其他回答

看起来您需要添加log4j的位置。属性文件到Eclipse中的类路径中。

确保您的项目在Eclipse中是打开的,然后单击Eclipse顶部的“Run”菜单,然后单击以下内容:

运行 运行配置 类路径(选项卡) 用户条目 高级(右侧按钮) 添加文件夹 然后导航到包含log4j的文件夹。属性文件 应用 运行

错误消息将不再出现。

我认为您应该理解log4j jar文件或Java代码在哪里查找log4j配置文件。

src / main /资源/ log4j。properties为Eclipse路径。 将它们放置在适当的位置,这样您就不必在代码中硬编码绝对路径。

请阅读我的文章和示例解决方案 https://askyourquestions.info/how-to-see-where-the-log-is-logger-in-slf4j/

添加如下代码作为第一个代码:

Properties prop = new Properties();
prop.setProperty("log4j.rootLogger", "WARN");
PropertyConfigurator.configure(prop);

我也有这个问题。 我只是忘记在IntelliJ IDEA中标记资源目录

右键单击您的目录 将目录标记为 资源根

这个简短的log4j介绍指南有点旧,但仍然有效。

该指南将为您提供一些关于如何使用记录器和附加程序的信息。


你可以采用两种简单的方法。

首先是将这一行添加到你的main方法中:

BasicConfigurator.configure();

第二种方法是添加这个标准log4j。属性(从上面提到的指南)文件到你的类路径:

# Set root logger level to DEBUG and its only appender to A1.
log4j.rootLogger=DEBUG, A1

# A1 is set to be a ConsoleAppender.
log4j.appender.A1=org.apache.log4j.ConsoleAppender

# A1 uses PatternLayout.
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n