每次 JVM 启动时,Log4j2 创建具有不同文件名的新文件
Log4j2 creating new file with distinct filename each time the JVM starts
我每次启动 JVM 时都需要创建一个新的日志文件。
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
</Console>
<RollingFile name="roll-by-time" fileName="target/log4j2/roll-by-time/app.log"
filePattern="target/log4j2/roll-by-time/app.%d{MM-dd-yyyy-HH-mm}.log"
ignoreExceptions="false"
append="false">
<PatternLayout>
<Pattern>%d{yyyy-MM-dd HH:mm:ss} %p %m%n</Pattern>
</PatternLayout>
<Policies>
<OnStartupTriggeringPolicy />
</Policies>
</RollingFile>
</Appenders>
<Loggers>
<Root level="trace">
<AppenderRef ref="Console" />
<AppenderRef ref="roll-by-time" />
</Root>
</Loggers>
</Configuration>
我试过这个配置,但它所做的只是每次都重写文件,但我需要根据日期 and/or 时间制作一个具有不同文件名的新文件。
试图在 fileName
参数中插入 %d{MM-dd-yyyy-HH-mm}
,但没有成功。
从 appender 配置中删除 append="false"
或将其设置为 true
-
<RollingFile name="roll-by-time" fileName="target/log4j2/roll-by-time/app.log"
filePattern="target/log4j2/roll-by-time/app.%d{MM-dd-yyyy-HH-mm}.log"
ignoreExceptions="false"
append="true">
尝试文件名指定${runid}.log。其中 runid = $${date:YYYY-MM-dd HH-mm-ss}
<Properties>
<Property name="runid">$${date:YYYY-MM-dd HH-mm-ss}</Property>
</Properties>
<Appenders>
<File name="MyFile" fileName="logs${runid}.log" immediateFlush="false" append="true">
<PatternLayout pattern="%d{dd-MM-yyy HH:mm:ss.SSS} %-5level - %msg%n"/>
</File>
我每次启动 JVM 时都需要创建一个新的日志文件。
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
</Console>
<RollingFile name="roll-by-time" fileName="target/log4j2/roll-by-time/app.log"
filePattern="target/log4j2/roll-by-time/app.%d{MM-dd-yyyy-HH-mm}.log"
ignoreExceptions="false"
append="false">
<PatternLayout>
<Pattern>%d{yyyy-MM-dd HH:mm:ss} %p %m%n</Pattern>
</PatternLayout>
<Policies>
<OnStartupTriggeringPolicy />
</Policies>
</RollingFile>
</Appenders>
<Loggers>
<Root level="trace">
<AppenderRef ref="Console" />
<AppenderRef ref="roll-by-time" />
</Root>
</Loggers>
</Configuration>
我试过这个配置,但它所做的只是每次都重写文件,但我需要根据日期 and/or 时间制作一个具有不同文件名的新文件。
试图在 fileName
参数中插入 %d{MM-dd-yyyy-HH-mm}
,但没有成功。
从 appender 配置中删除 append="false"
或将其设置为 true
-
<RollingFile name="roll-by-time" fileName="target/log4j2/roll-by-time/app.log"
filePattern="target/log4j2/roll-by-time/app.%d{MM-dd-yyyy-HH-mm}.log"
ignoreExceptions="false"
append="true">
尝试文件名指定${runid}.log。其中 runid = $${date:YYYY-MM-dd HH-mm-ss}
<Properties>
<Property name="runid">$${date:YYYY-MM-dd HH-mm-ss}</Property>
</Properties>
<Appenders>
<File name="MyFile" fileName="logs${runid}.log" immediateFlush="false" append="true">
<PatternLayout pattern="%d{dd-MM-yyy HH:mm:ss.SSS} %-5level - %msg%n"/>
</File>