2017-09-06 33 views
1

以下のように、log4j2 loggerにファイル名を指定しています。すべてが正常に動作しますが、私はエラーに取得log4j2ロガーへのファイル名の追加

2017年9月6日16:54:org.apache.logging.log4j.core.appender.RandomAccessFileAppenderが無視されるタイプの33496メインERROR不明なオブジェクト「のRandomAccessFileは、」:試します[Appenders]、[Logger]、[Properties]、[Scripts]、[CustomLevels]のいずれかの内部にネストします。

<?xml version="1.0" encoding="UTF-8"?> 
    <Configuration package="log4j.test" 
        status="WARN"> 
     <Appenders> 
      <Console name="Console" target="SYSTEM_OUT"> 
       <PatternLayout pattern="%d{dd/MM/yyyy HH:mm:ss} %c %m%n"/> 
      </Console> 
     </Appenders> 
     <RandomAccessFile name="FILE" fileName="${sys:log4j.saveDirectory}/CMSAutomation.${date:yyyy-MM-dd_hh-mm-ss}.log" append="true" immediateFlush="false"> 
      <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} %-6p %C{1}.%t:%L >>> %m%n"/> 
     </RandomAccessFile > 
     <Loggers> 
      <Logger name="log4j.test.Log4jTest" level="debug"> 
       <AppenderRef ref="Console"/> 
      </Logger> 
      <Root level="trace"> 
       <AppenderRef ref="Console"/> 
      </Root> 
     </Loggers> 
    </Configuration> 

答えて

1

RandomAccessFileappender<Appenders> XML要素内で定義されていないため、このエラーが来ています。以下は

RandomAccessFileappenderを含む任意のappenderを定義するのが正しい方法です -

<?xml version="1.0" encoding="UTF-8"?> 
<Configuration package="log4j.test" 
       status="WARN"> 
    <Appenders> 
     <Console name="Console" target="SYSTEM_OUT"> 
      <PatternLayout pattern="%d{dd/MM/yyyy HH:mm:ss} %c %m%n"/> 
     </Console> 
     <RandomAccessFile name="FILE" fileName="${sys:log4j.saveDirectory}/CMSAutomation.${date:yyyy-MM-dd_hh-mm-ss}.log" append="true" immediateFlush="false"> 
      <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss} %-6p %C{1}.%t:%L >>> %m%n"/> 
     </RandomAccessFile> 
    </Appenders> 
    <Loggers> 
     <Logger name="log4j.test.Log4jTest" level="debug"> 
      <AppenderRef ref="Console"/> 
     </Logger> 
     <Root level="trace"> 
      <AppenderRef ref="Console"/> 
     </Root> 
    </Loggers> 
</Configuration> 

はあなたがlog4j2ドキュメントhereで同じことを確認することができます。

追加ポイントは、いずれもloggerRandomAccessFileアペンダーを使用していません。 loggerに定義しないと、機能しません。

関連する問題