控制台

时间:2015-11-16 15:24:23

标签: java eclipse log4j

虽然提出了类似的问题,但我找不到解决方案。我猜是因为配置不同。

我正在使用第三方jar,但在直接使用log4j时也遇到了同样的问题。

我正在研究Eclipse Mars.1

我的log4j.properties如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/xml/doc-files/log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">

 <root>
        <level value="ALL" />
        <appender-ref ref="consoleAppender"/>
        <appender-ref ref="fileAppender"/>
</root>

<appender name="consoleAppender" class="org.apache.log4j.ConsoleAppender" additivity="false">
  <param name="Threshold" value="DEBUG" />
  <layout class="org.apache.log4j.PatternLayout">
     <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} %-5p [%X{ThreadId}] %X{MethodName} - %m%n" />
  </layout>
</appender>

<appender name="fileAppender" class="org.apache.log4j.RollingFileAppender" additivity="false">
  <param name="Threshold" value="DEBUG" />
  <param name="append" value="true" />
  <param name="maxFileSize" value="10MB" />
  <param name="maxBackupIndex" value="10" />
  <param name="File" value="c:\Users\administrator\Eclipse workspaces\mylog-${current.date}.log"/>
  <layout class="org.apache.log4j.PatternLayout">
     <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} %-5p [%X{ThreadId}] %X{MethodName} - %m%n" />
  </layout>
</appender>

</log4j:configuration>

这是我在eclipse控制台中看到的一个例子:

2015-11-16 17:13:33 DEBUG []  - ConferenceId = 4618311
13082 [main] DEBUG com.log.Log4jWrapperSingleton  - ConferenceId = 4618311
13082 [main] DEBUG com.log.Log4jWrapperSingleton  - ConferenceId = 4618311
13082 [main] DEBUG com.log.Log4jWrapperSingleton  - ConferenceId = 4618311
2015-11-16 17:13:33 INFO  []  - SLEEP_BETWEEN_CREATE_TO_TERMINATE_SEC waiting 2000 ms...
13083 [main] INFO com.log.Log4jWrapperSingleton  - SLEEP_BETWEEN_CREATE_TO_TERMINATE_SEC waiting 2000 ms...
13083 [main] INFO com.log.Log4jWrapperSingleton  - SLEEP_BETWEEN_CREATE_TO_TERMINATE_SEC waiting 2000 ms...
13083 [main] INFO com.log.Log4jWrapperSingleton  - SLEEP_BETWEEN_CREATE_TO_TERMINATE_SEC waiting 2000 ms...

每次迭代代码再添加一次。如果我现在有3个重复的“SLEEP_BETWEEN_CREATE_TO_TERMINATE_SEC等待”,下一个循环我将有4个......

你能告诉我吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

我期望的问题在于您的自定义Log4j包装器:com.log.Log4jWrapperSingleton

你应该摆脱它。每当它被称为有效地向ConsoleAppender添加新的记录器时,它很可能为它自己提供新的实例(我们只能在我们看到源代码之前猜测)

您可以在此处找到推理:Benefits of Log4j singleton wrapper?