我尝试在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/resources并log4j.xml进入。
现在,此警告一切正常,log但未创建文件。
这条线有<param name="file" value="/logs/log.log" />什么问题?
您的 log4j.xml 文件需要位于目录 src/main/resources 中。Log4J 期望在类路径的根目录中找到它。
resources 目录是放置所有非 Java 代码但您想要进入类路径的内容的地方。如果它只是测试应该使用的东西,请将其放在 src/test/resources 中,否则使用 src/main/resources 。