我正在使用 Log4j2,并且我需要我的日志:
- 在活动日志文件名中包含当前日期和进程 ID(例如,logname.529628.27-04-2025.log)
- 根据文件大小创建新日志(例如,每 10MB)
- 仅保留最大数量的旧文件(例如 10 个备份)
这就是我现在所拥有的:
<?xml version="1.0" encoding="UTF-8"?>
<Properties>
<Property name="LOG_PATTERN">
%-40.40c{1.} : %notEmpty{%m}%n%ex
</Property>
<Property name="PID">${sys:PID}</Property>
<Property name="FS">${sys:file.separator}</Property>
<Property name="log-path">log${sys:file.separator}</Property>
<Property name="log-pattern">%d{yyyy-MM-dd HH:mm:ss,SSS} PID:${sys:PID} %-2p [T@%tid-%t] [%F:%L] %notEmpty{%marker} %m%n</Property>
</Properties>
<Appenders>
<Routing name="Routing">
<Routes pattern="$${sys:logName}">
<Route key="testlog">
<RollingFile name="ArchiveLog" fileName="${log-path}logname.${sys:PID}.${date:dd-MM-yyyy}.log"
filePattern="${log-path}logname.${sys:PID}.${date:dd-MM-yyyy}.%i.log">
<PatternLayout pattern="${log-pattern}"/>
<Policies>
<SizeBasedTriggeringPolicy size="10MB"/>
</Policies>
<DefaultRolloverStrategy max="10">
</DefaultRolloverStrategy>
</RollingFile>
</Route>
</Routes>
</Routing>
</Appenders>
<Loggers>
<Logger name="logname" level="trace" additivity="false">
<AppenderRef ref="Routing" />
</Logger>
<Root level="info">
<AppenderRef ref="Routing"/>
</Root>
</Loggers>
但似乎按大小旋转对于动态文件名无法正常工作。有什么想法吗?
谢谢!