How to add the date timestamp to log4j2 logfiles?

2019-04-26 16:42发布

问题:

I want to create day dependent logfiles with log4j2:

<RollingFile name="APP" fileName="application-%d{yyyy-MM-dd}.log" />

Resulting logfile name: application-%d{yyyy-MM-dd}.log, the timestamp is not replaced. Why?

回答1:

The pattern should not be given in the attribute "fileName" rather you have to specify the pattern in the attribute "filePattern" as like below.

<RollingFile name="RollingFile" fileName="${log-path}/filename.log" 
filePattern="${log-path}/filename-%d{yyyy-MM-dd}-%i.log" >
...
...
</RollingFile>

The "%i" is the counter that will be automatically incremented in rollover.

Hope this will help you.



回答2:

To append the filename with date, replace %d with below format, i was having the same problem and but got by doing so :

<RollingFile name="APP" fileName="application-${date:yyyy-MM-dd}.log" />