Добавить строку при автоматическом создании файла logback
В приложении используется logback c SizeAndTimeBasedRollingPolicy. При достижении определенного размера файл архивируется и складывается в отдельную папку.
Необходимо для экономии места в каждый создаваемый файл добавлять первую строку с описанием лога. Можно ли отследить момент создания нового файла лога, или настроить logback что бы он добавлял заданную строку в каждый создаваемый файл?
Сейчас лог имеет вид:
1 строка: %TIME%:%VARNAME1%;%VARVALUE1%;%VARNAME2%;%VARVALUE2%
2 и последующие: %TIME%:%VARNAME1%;%VARVALUE1%;%VARNAME2%;%VARVALUE2%
Хочу сделать лог в виде csv файла:
1 строка, названия колонок: TIME, %VARNAME1%, %VARNAME2%
2+ строка: %TIME%;%VARVALUE1%;%VARVALUE2%
Текущая конфигурация logback:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<property name="LOG_PATH" value="D:/tmp"/>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{20} - %msg%n</pattern>
</encoder>
</appender>
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_PATH}/last.log</file>
<rollingPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${LOG_PATH}/archived/%d{yyyy-MM-dd}.%i.zip</fileNamePattern>
<maxFileSize>100MB</maxFileSize>
<maxHistory>360</maxHistory>
<totalSizeCap>20GB</totalSizeCap>
</rollingPolicy>
<encoder>
<pattern>%d{HH:mm:ss.SSS};%msg%n</pattern>
</encoder>
</appender>
<logger name="com.company.class1" level="WARN">
<appender-ref ref="console"/>
</logger>
<logger name="com.company.class2" level="TRACE" additivity="false">
<appender-ref ref="FILE"/>
</logger>
<root level="ERROR">
<appender-ref ref="STDOUT"/>
</root>
</configuration>