log4j2を使用するJavaのプロジェクトに取り組んでおり、log4netを使用して.NETの古いプロジェクトと同じようにログを設定したいと考えています。
log4j2で行う方法、私が理解できないことがいくつかあります。
log4j2アペンダーに現在の日付をログファイルに入れて、毎日新しいログファイルを作成させるにはどうすればよいですか?TimeBasedTriggeringPolicyを使用しようとしましたが、古いログの名前に日付を入れることができましたが、現在のログには日付がありません。fileNameで%d {yyyyMMdd}を使用しようとしましたが、機能しませんでした。log4j2のdatePatternに相当するものはありますか?
これが.NETプロジェクトの元のアペンダーです。
<appender name="DebugRollingFileAppender" type="log4net.Appender.RollingFileAppender">
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<file value="c:\ConcertCTS\Logs\" />
<appendToFile value="true" />
<datePattern value="yyyyMMdd'_debug.log'" />
<staticLogFileName value="false" />
<encoding value="utf-8" />
<maximumFileSize value="50MB" />
<rollingStyle value="Composite" />
<maxSizeRollBackups value="-1" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date{hh:mm:ss.fffzzz} [Thread: %-2thread] %-5level - %message%newline%exception" />
</layout>
</appender>
そして、これが私がlog4j2のために思いついたものです。
<RollingFile name="DebugRollingAppender" fileName="/EnvoyLogs/debug.log"
filePattern="/EnvoyLogs/%d{yyyyMMdd}_debug.%i.log">
<PatternLayout>
<Pattern>%d [%t] %p %c{8.} %m%n</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy />
<SizeBasedTriggeringPolicy size="50 MB" />
</Policies>
<DefaultRolloverStrategy max="100"
compressionLevel="0" />
</RollingFile>
また、古いログで1番になるのも嫌いです。これは、filePatternの%iであることがわかっていますが、ログを特定のサイズを超えたときに分割して番号を付ける必要があるため、ログを片付けたくありません。それで何かできますか?
前もって感謝します!
Log4j2は現在(v 2.1)、あなたが説明したことを実行できません。log4j2Jira課題トラッカーで機能リクエストを発生させることをお勧めします。私はファイル名に最初から日付を入れるという考えが好きで、完全に理にかなっています。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加