How to add the date timestamp to log4j2 logfiles?

淺唱寂寞╮ 提交于 2019-12-05 20:19:06

问题


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" />



回答3:


Try this:

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="warn" name="MyApp" packages="">

    <Properties>
        <Property name="log-path">D:/logs/</Property>
    </Properties>

    <Appenders>

        <RollingFile name="DebuggerLogger" fileName="${log-path}CMSAutomation.${date:yyyy-MM-dd_hh-mm-ss}.log" filePattern="${log-path}/$${date:yyyy-MM}/app-%d{MM-dd-yyyy}-%i.log.gz">
            <PatternLayout>
                <Pattern>%d %p %c{1.} [%t] %m%n</Pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy />
                <SizeBasedTriggeringPolicy size="10 MB" />
            </Policies>
        </RollingFile>

    </Appenders>

    <Loggers>
        <Root level="ALL">
            <AppenderRef ref="DebuggerLogger"/>
        </Root>
    </Loggers>

</Configuration>


来源:https://stackoverflow.com/questions/31670088/how-to-add-the-date-timestamp-to-log4j2-logfiles

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!