log4j2 使用 log4j2.properties 文件登录多个文件的策略相同

问题描述 投票:0回答:1

我正在修改现有的 log4j2.properties 文件以将错误记录到单独的文件中。我的问题是如何为多个 fileappenders REUSE SizeBasedTriggeringPolicyTimeBasedTriggeringPolicyDefaultRolloverStrategy。我不想多次复制相同的东西

appender.errorfile.policies.type=Policies
appender.errorfile.policies.size.type = SizeBasedTriggeringPolicy
appender.errorfile.policies.size.size = 51200KB
appender.errorfile.policies.time.type = TimeBasedTriggeringPolicy
appender.errorfile.policies.time.interval = 1
appender.errorfile.policies.time.modulate = true

appender.errorfile.strategy.type = DefaultRolloverStrategy
appender.errorfile.strategy.delete.type = Delete
appender.errorfile.strategy.delete.basePath = /logs
appender.errorfile.strategy.delete.maxDepth = 10
appender.errorfile.strategy.delete.ifLastModified.type = IfLastModified
appender.errorfile.strategy.delete.ifLastModified.age=30d
appender.errorfile.filter.threshold.type = ThresholdFilter
appender.errorfile.filter.threshold.level = ERROR
appender.errorfile.filter.threshold.onMatch = ACCEPT
appender.errorfile.filter.threshold.onMismatch = DENY


appender.errorfile.type=RollingFile
appender.errorfile.name=File-ERROR
appender.errorfile.fileName=/logs/error.log
appender.errorfile.filePattern=/logs/error_%d{yyyyMMdd}.log.gz
appender.errorfile.layout.type=PatternLayout
appender.errorfile.layout.pattern=%d %-5p [%C] (%tn) %m (%F:%L)%n

log4j2
1个回答
0
投票

无法重用属性文件的部分内容或将多个属性文件组合成一个。

唯一允许的配置格式是 XML,通过内置的 XInclude 功能实现。因此,您可以创建一个模板文件

rolling-file.xml
:

<?xml version="1.0" encoding="UTF-8" ?>
<RollingFile>
    <Policies>
        <SizeBasedTriggeringPolicy size="51200 KB"/>
        <TimeBasedTriggeringPolicy/>
    </Policies>
    <DefaultRolloverStrategy>
        <Delete basePath="logs" maxDepth="10">
            <IfLastModified age="30d"/>
        </Delete>
    </DefaultRolloverStrategy>
</RollingFile>

并将其部分内容包含在

log4j2.xml
文件中:

<?xml version="1.0" encoding="UTF-8" ?>
<Configuration xmlns:xi="http://www.w3.org/2001/XInclude">
    <Appenders>
        <RollingFile name="File-ERROR"
                     fileName="logs/error.log"
                     filePattern="logs/error_%d{yyyyMMdd}.log.gz">
            <PatternLayout pattern="%d %-5p [%C] (%tn) %m (%F:%L)%n"/>
            <xi:include href="rolling-file-template.xml" xpointer="element(/1/1)"/>
            <xi:include href="rolling-file-template.xml" xpointer="element(/1/2)"/>
        </RollingFile>
    </Appenders>
    ...
</Configuration>
© www.soinside.com 2019 - 2024. All rights reserved.