1

Spring 3 スタンドアロン アプリケーションがあり、ログに log4j を使用しています。Log4j の設定は、以下に貼り付けた xml のものです。ログ出力がコンソールに書き込まれますが、ログ ファイルには何も書き込まれません。

Log4j は、次のステートメントによってクラスMainで初期化されます。

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

ロガーレベルの値を変更したり、ロガーファイルの属性の加法的値を変更したり、削除したりして、すでに試しました。コンソールに出力が書き込まれますが、ログ ファイルには何も書き込まれません (作成されます)。

XML ファイルの検証に成功しました。Google で解決策を探しましたが、何も得られませんでした。何か案が?

前もって感謝します。

<?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で「TheConsoleAppender」と「RollingFileAppender」の両方を構成しました

したがって、Log4jはデフォルトで最初のものを選択します。つまり、ロギングとしてのConsoleAppenderです。

そのため、Console(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 に答える