私はlog4j2を初めて使用しています。以前私はlog4jを使用しています。パート2に移行するのは、非同期ロギングのためです。インターネットを検索した後、実際に2つのログファイル "Errors.log"と "Messages.log"を作成する構成ファイルを書き込むことができます。問題は次のとおりです。私は遠くから離れているサーバーと通信しています。私は、サーバーと通信して要求を送信するクライアントを書いて、サーバーは応答を返します。どのような状況でも、要求がサーバーに到達し、サーバーからの応答を返すためには少なくとも10ミリ秒かかります。しかし、私のログファイルでは、サーバーに送信された要求とサーバーから受信された要求が同じ時間(同じミリ秒)であることが示されています。私は非同期ロギングを使用しています。これはタイムスタンプが間違っていますか?そうしないと、私が使ったポリシーがこれらの問題を作り出していますか?私のカスタムLog4j2 XML設定ファイルのログ時間が正しくありませんJava
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn">
<Appenders>
<File name="my_file_appender" fileName="LOG4j_LOGS/Errors.log" immediateFlush="false" append="false">
<PatternLayout>
<Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} - %msg%n</Pattern>
</PatternLayout>
</File>
<Async name="async_appender">
<AppenderRef ref="my_file_appender" />
</Async>
<!-- file appender -->
<RollingFile name="Error-log" fileName="LOG4j_LOGS/Messages.log"
filePattern="LOG4j_LOGS/Messages-%d{yyyy-MM-dd}.log">
<!-- log pattern -->
<PatternLayout>
<Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} - %msg%n</Pattern>
</PatternLayout>
<!-- set file size policy -->
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="100 MB" />
</Policies>
<DefaultRolloverStrategy max="25"/>
</RollingFile>
</Appenders>
<Loggers>
<Logger name="Error-log" level="info" additivity="false">
<appender-ref ref="Error-log" level="debug"/>
</Logger>
<Root level="info" includeLocation="false">
<AppenderRef ref="async_appender"/>
</Root>
</Loggers>
</Configuration>
は誰私のCONFIGファイルをチェックしてくださいすることができ:
以下は私のLog4j2 XML設定ファイルです。私が望むのは、2つの別々のログファイルを作成することです.1つは情報メッセージを格納し、もう1つはエラーを格納するためのものです。アプリケーションを実行するたびに新しいファイルが作成され、以前のログは削除されません。ログのサイズは何でもかまいません。サイズを超えた場合は、新しいファイルを作成し、そのファイルにデータを書き込む必要があります。アプリケーションを何日実行しても、日々のログを保存し、プロセス全体を非同期で実行する必要があります。私も非同期でログインするためのVMオプションの下に使用しています
:
-DLog4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector