1

我有一个 Spring 3 独立应用程序,并且正在使用 log4j 进行日志记录。Log4j 设置是下面粘贴的 xml 中的设置。我将日志输出写入控制台,但没有写入日志文件。

Log4j 在Main类中通过语句初始化:

DOMConfigurator.configure("abanol-loader-log4j.xml");

我已经尝试通过更改记录器级别值,更改记录器文件中属性可加性的值,甚至删除它。我将输出写入控制台,但没有写入日志文件(但它已创建)。

我已经成功验证了 XML 文件,我已经用谷歌搜索了一个解决方案,但我什么也没得到。任何想法?

提前致谢。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" threshold="debug" debug="false">

   <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.RollingFileAppender">
      <param name="File" value="abanol-loader.log"/>
      <param name="MaxFileSize" value="25MB"/>
      <param name="MaxBackupIndex" value="20"/>
      <layout class="org.apache.log4j.PatternLayout">
         <param name="ConversionPattern" value="%5p-%d{ISO8601}-[%t]-%C.%M:%L(%c{1}) - %m%n"/>
      </layout>
   </appender>

   <logger name="es.pack1.mypackage" additivity="true">
      <level value="DEBUG"/>
      <appender-ref ref="file"/>
      <appender-ref ref="console"/>
   </logger>

   <logger name="org.springframework" additivity="true" >
      <level value="WARN"/>
      <appender-ref ref="file"/>
   </logger>

   <logger name="net.sf.jasperreports" additivity="false">
      <level value="DEBUG"/>
      <appender-ref ref="file"/>
   </logger>

   <root>
      <level value="DEBUG" />
      <appender-ref ref="console"/>
      <appender-ref ref="file"/>
   </root>
</log4j:configuration>
4

2 回答 2

0

您已经在 log4j.xml 中配置了“控制台 Appender”和“RollingFile Appender”

所以,Log4j 默认选择第一个。即,Console Appender 作为日志记录。

所以,它在控制台(System.out.println)中写日志报告

请删除Console Appender,然后它会自动将日志保存在文件中............

于 2012-06-15T11:06:34.300 回答
0

我终于用属性文件替换了 log4j XML 配置。我认为它与我使用的 XML 相同,但它可以工作,而 XML 不能。我真的不知道为什么。

log4j.rootCategory=DEBUG, S, file

log4j.logger.es.bod.freenergy.abanol=DEBUG, file

log4j.appender.S = org.apache.log4j.ConsoleAppender
log4j.appender.S.layout = org.apache.log4j.PatternLayout
log4j.appender.S.layout.ConversionPattern =%5p-%d{ISO8601}-[%t]-%C.%M:%L(%c{1}) - %m%n

log4j.appender.file = org.apache.log4j.RollingFileAppender
log4j.appender.file.File =abanol-loader.log
log4j.appender.file.MaxFileSize = 10Mb
log4j.appender.file.MaxBackupIndex=25
log4j.appender.file.Append = false
log4j.appender.file.layout = org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%5p-%d{ISO8601}-[%t]-%C.%M:%L(%c{1}) - %m%n

无论如何,感谢谁回答了我的问题。

于 2012-06-15T17:28:49.767 回答