Работя върху проект в java, който използва log4j2 и искам да настроя регистриране по същия начин, както имах в по-стар проект в .NET, използвайки log4net.
Има някои неща, които не мога да разбера, как да направя в log4j2.
Как мога да принудя log4j2 appender да постави текущата дата в лог файла и да създава нов лог файл всеки ден? Опитах се да използвам TimeBasedTriggeringPolicy и това ми позволи да поставя дата в името на по-старите регистрационни файлове, но текущите никога нямат датата. Опитах да използвам %d{yyyyMMdd} във fileName, но не се получи. Има ли някакъв еквивалент на datePattern в log4j2?
Ето оригиналния appender от .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>
Също така не ми харесва, че поставя номер едно в по-старите ми регистрационни файлове. Знам, че това е %i във filePattern какво прави това, но не искам да го оставям, тъй като имам нужда регистрационните файлове да бъдат разделени и номерирани, когато надвишат определен размер. Мога ли да направя нещо с това?
Благодаря предварително!