Spring 3独立应用程序不会将输出写入文件

时间:2012-06-15 08:42:33

标签: java spring log4j

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

Log4j在类 Main 中按语句

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

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

我已经成功验证了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>

2 个答案:

答案 0 :(得分:0)

您已在log4j.xml中配置“Console Appender”和“RollingFile Appender”

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

因此,它正在Console(System.out.println)

中写入日志报告

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

答案 1 :(得分: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

感谢谁回答了我的问题。