log4j.xml - 警告找不到记录器的附加程序

naz*_*art 5 xml log4j

我尝试在log4j我的简单项目中使用loger。

但是当我运行项目时,我在控制台从 log4j 发出了应变警告:

log4j:WARN No appenders could be found for logger (org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚为什么会发生这种情况。

我添加并下载了带有 Maven 的 log4j 都应该可以工作。

我指定了 apeender,在我看来它应该可以正常工作。
但正如你所看到的,事实并非如此。

这是我的内容log4j.xml

<!-- Appenders -->
<!-- Loggin into console -->
<appender name="console" class="org.apache.log4j.ConsoleAppender">
    <param name="Target" value="System.out" />
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%-5p: %c - %m%n" />
    </layout>
</appender>
<appender name="file" class="org.apache.log4j.DailyRollingFileAppender">
    <param name="file" value="/logs/log.log" />
    <param name="DatePattern" value="'.'yyyy-MM-dd" />
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d [%t] %-5p (%F:%L:%M)  %c{1}  - %m%n" />
    </layout>
</appender>

<!-- Root logger -->
<root>
    <priority value="info" />
    <appender-ref ref="file" />
    <appender-ref ref="console" />
</root>

<!-- Application Loggers -->
<logger name="com.softserve.edu">
    <level value="info" />
</logger>
Run Code Online (Sandbox Code Playgroud)

我错过了标准页眉和页脚(标签)。

一个棘手的地方是这个文件logs夹中的文件不存在(我猜 log4j 会自己创建它)。

这是我的项目结构:

项目建设

更新:

我在下面创建了新文件夹src/test/resourceslog4j.xml进入。

现在,此警告一切正常,log但未创建文件。

这条线有<param name="file" value="/logs/log.log" />什么问题?

  • 如何解决这个烦恼?

Nat*_*hes 2

您的 log4j.xml 文件需要位于目录 src/main/resources 中。Log4J 期望在类路径的根目录中找到它。

resources 目录是放置所有非 Java 代码但您想要进入类路径的内容的地方。如果它只是测试应该使用的东西,请将其放在 src/test/resources 中,否则使用 src/main/resources 。