【发布时间】:2016-08-19 04:50:51
【问题描述】:
我正在使用 log4j 2。我试图确定为什么我的日志文件没有被写入,但我的控制台是。这是我对控制台的输出:
2016-04-25 12:26:07,142 INFO [main] helperCode.LogPlus (LogPlus.java:50) -
----------------------------------------------------------------------------
------------ The test is starting now at 2016-04-25-12-26-07-135 -----------
----------------------------------------------------------------------------
2016-04-25 12:26:07,151 INFO [main] helperCode.LogPlus (LogPlus.java:50) -
--------------------------------------------------------------------------
------------ METHOD loginBadPasswordGoodUsername_3 starting: ------------
--------------------------------------------------------------------------
我已经考虑过的问题:
- 输出不会重复,因此重定向的日志输出不是问题。
- 我没有在我的项目中的任何地方使用 java.util.logging.Logger;
- 日志文件的输出格式是 log4j 样式而不是 JUL 样式,所以我知道 JUL 没有覆盖它;
这是我的 XML 配置文件:
<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
<Appenders>
<File name="FileLogger" fileName="${sys:logFilePath}" append="false">
<PatternLayout pattern="%d %t %-5p %c{2} - %m%n" />
</File>
<Async name="Async">
<AppenderRef ref="FileLogger" />
</Async>
<Console name="STDOUT" target="SYSTEM_OUT">
<PatternLayout pattern="%d %-5p [%t] %C{2} (%F:%L) - %m%n" />
</Console>
</Appenders>
<Loggers>
<Logger name="automationFramework" level="trace">
<AppenderRef ref="FileLogger" />
</Logger>
<Root level="trace">
<AppenderRef ref="STDOUT" />
</Root>
</Loggers>
</Configuration>
我将输出定向到位于系统变量“logFilePath”的文件。
我不确定发生了什么,类似问题的答案中显示的配置文件不是 XML 格式,所以我不确定如何将配置文件代码转换为 XML。
【问题讨论】:
-
向我们展示你是如何在代码中配置的......以及你是如何实现记录器的......
-
你的包名是automationFramework(你项目中的java类)?
-
其实,Unknown,ΦXoce 和 웃 Пepeúpa,我想我刚刚弄明白了。正如您所建议的,未知,从中执行调用的包被命名为不同的名称。我将 log4j 2 配置文件中的包名称更改为该包,它修复了一些问题。谢谢你们!