java - Log4j2: Handle new day -
i'm working on application requires multiple services running, want create folder every day contain different services' logs, here's xml:
<?xml version="1.0" encoding="utf-8"?> <configuration status="info"> <properties> <property name="log_level">info</property> <property name="log_pattern">%-5p %d{hh:mm:ss,sss} [%t] [%c{1}] (%f:%l) - %m %n</property> </properties> <appenders> <console name="console" target="system_out"> <thresholdfilter level="${log_level}" onmatch="accept" onmismatch="deny"/> <patternlayout> <pattern>${log_pattern}</pattern> </patternlayout> </console> <!-- https://logging.apache.org/log4j/2.x/manual/appenders.html#rollingrandomaccessfileappender --> <!-- async loggers auto-flush in batches, switch off immediateflush. --> <rollingrandomaccessfile name="file" filename="${sys:servicelogdir}/${date:yyyymmdd}/${sys:servicelogfileprefix}-${date:yyyymmdd_hhmmss}.log" filepattern="${sys:servicelogdir}/$${date:yyyymmdd}/${sys:servicelogfileprefix}-%d{yyyymmdd}-%i.log.zip" immediateflush="false" append="true"> <thresholdfilter level="${log_level}" onmatch="accept" onmismatch="deny"/> <patternlayout> <pattern>${log_pattern}</pattern> </patternlayout> <policies> <onstartuptriggeringpolicy /> <timebasedtriggeringpolicy /> </policies> <!-- defaultrolloverstrategy max="100"/ --> </rollingrandomaccessfile> </appenders> <loggers> <root level="${log_level}" includelocation="true"> <appenderref ref="file" /> <appenderref ref="console" /> </root> </loggers> </configuration> this code works fine if stop services every day, here's example:

you can see in screen shot folders created each day , log files inside. issue when don't stop services , keep them running until day after, folder next day doesn't created , log files of yesterday keep being updated in yesterday's folder, want logs stop @ midnight, create new folder new day , create new logs new day (or move yesterday's logs new folder).
thanks.
Comments
Post a Comment