log4j2:多个记录器的一个通用参数化appender [类型:RollingFile]



亲爱的,我有疑问,我有许多服务在具有相同日志级别的不同日志文件中编写。我从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常见问题。

最新更新