2016-06-01 21 views
0

私はTomcat Webアプリケーションのロギングにlog4j 2.5を使用しています。 2つのアプリケーションサーバーがあり、どちらもネットワークパス上の同じログファイルに書き込みます。なぜ私のlog4j2ローリングログに前日のログエントリも含まれていますか?

新しいログファイルには前日のすべてのエントリが含まれているため、ログファイルのサイズが大きくなります。

たとえば、myLog-2016-06-01.logには、5-20(実装日)から06-01、myLog-05-31からのすべてのログが含まれ、5-20から5までのすべてが含まれます-31など...

私はXML設定ファイルの仕組みについて理解していないと思います。 log4j2.xmlから

関連情報は、次のようになります。

<?xml version="1.0" encoding="UTF-8"?> 
<Configuration status="trace"> 
<Appenders> 
    <RollingRandomAccessFile name="RollingFileLogger" 
          fileName="[...]\myLog.log" 
          filePattern="[...]\myLog-%d{yyyy-MM-dd}.log"> 
     <PatternLayout pattern="%n %n %d ${hostName} %p %c: %msg"/> 
     <Policies> 
      <TimeBasedTriggeringPolicy/> 
     </Policies> 
     <DefaultRolloverStrategy max="10"/> 
    </RollingRandomAccessFile> 
    <Console name="ConsoleLogger" target="SYSTEM_OUT"> 
     <PatternLayout pattern="%d{HH:mm:ss} [%t] %-5level %logger{36} - %msg%n"/> 
    </Console> 
</Appenders> 
<Loggers> 
    <Root level="trace"> 
     <AppenderRef ref="RollingFileLogger"/> 
     <AppenderRef ref="ConsoleLogger"/> 
    </Root> 
</Loggers> 

+2

"ネットワークパス上の同じログファイルに書き込む2つのアプリケーションサーバーがあります" - これは問題の可能性があります。 'SocketAppender'や' SyslogAppender'のように、いくつかのアプリケーションから同時に一つのログに書き込むために特別なアペンダーを使う必要があります。 – Roman

+0

私はそれらを調査します、ありがとう。また、これが私の唯一の問題であることを確認するために、別のファイル(代わりにローカルのファイルシステム上のファイル)を試してみる予定です。 – Arc

+0

それは問題です。私はSocketAppenderを設定しようとしています。 – Arc

答えて

0

パーRomanのコメント、答えはすべてのWebアプリケーションからのすべてのロガーのコールを漏斗にSocketAppenderおよび添付ソケットサーバーを使用していました単一のアペンダーに変換します。今は完璧に動作します。

関連する問題