亲爱的,我有疑问,我有许多服务在具有相同日志级别的不同日志文件中编写。我从Internet获得的内容需要根据服务数量创建附录和记录仪。现在,我的问题是,我可以制作一个用于多个登录器的通用放对式appender吗?我需要Appender中的参数来指定日志文件名及其路径。以下XML摘要,用于定义:
<Appenders>
<RollingFile name="RollingFile-Appender"
fileName="${log-path}/{This one based on service}.log"
filePattern="${log-path}/{This one based on service}/{This one based on service}_%d{yyyy-MM-dd}.log">
<PatternLayout pattern="[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n"/>
<Policies>
<OnStartupTriggeringPolicy />
<TimeBasedTriggeringPolicy interval="1" modulate="true"/>
<SizeBasedTriggeringPolicy size="${fileSize}" />
</Policies>
<DefaultRolloverStrategy>
<Delete basePath="${log-path}/{This one based on service}" maxDepth="1">
<IfFileName glob="{This one based on service}*.log">
<IfAny>
<IfAccumulatedFileSize exceeds="500 MB" />
<IfAccumulatedFileCount exceeds="3" />
</IfAny>
</IfFileName>
</Delete>
</DefaultRolloverStrategy>
</RollingFile>
</Appenders>
预先感谢。
是的,您可以使用RoutingAppender log到多个日志文件,甚至可以动态创建日志文件。人们通常将上下文图作为路由规则。
有关示例,请参见"手册"页面和log4j2常见问题。