逗人, 我有问题,我有很多服务在不同的日志文件中写入相同的日志级别。 我从互联网上得到的东西,我需要根据服务的数量创建appender和logger。 现在,我的问题是,我可以制作一个通用的parmeterized appender用于多个记录器吗?我需要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>
提前致谢。
答案 0 :(得分:0)
是的,您可以使用RoutingAppender登录多个日志文件,甚至动态创建日志文件。通常人们使用上下文映射作为路由规则。
有关示例,请参阅manual page和Log4j2 FAQ page。