specyfic包的日志模式

时间:2017-03-22 15:02:47

标签: xml logging log4j log4j2

我正在尝试改进我的服务器上的日志记录(log4j2),我的所有软件包都使用一个公共配置文件,它有一些像这样的全局模式:  

<Properties>
    <Property name="patternLayout1"> some pattern </Property>
    <Property name="patternLayout2"> other pattern </Property>
</Properties>

<Appenders>
    <Console name="GENERAL_SYNC_CONSOLE" target="SYSTEM_OUT">
        <PatternLayout pattern="${patternLayout1}"/>
    </Console>
</Appenders>

<!-- some configuration is below -->

</Appenders>

如何在此文件中配置一个/多个软件包使用patternLayout2进行日志记录而不是patternLayout1

2 个答案:

答案 0 :(得分:1)

我找到了一个很好的example给你。您可以为不同的包定义category,在其中您可以定义appender-ref您的appender的引用是什么。您可以在官方doc中阅读相关内容。

我希望它有所帮助。 ;)

答案 1 :(得分:0)

试试这个

<?xml version="1.0" encoding="UTF-8"?>
<Configuration>
    <Properties>
        <Property name="pattern1" value="PATTERN1: -> %msg%n"/>
        <Property name="pattern2" value="PATTERN2: -> %msg%n"/>
    </Properties>

    <Appenders>
        <Console name="console1">
            <PatternLayout pattern="${pattern1}"/>
        </Console>
        <Console name="console2">
            <PatternLayout pattern="${pattern2}"/>
        </Console>
    </Appenders>

    <Loggers>
        <Logger name="your.package" level="debug" additivity="false">
            <AppenderRef ref="console2"/>
        </Logger>
        <Root level="debug">
            <AppenderRef ref="console1"/>
        </Root>
    </Loggers>
</Configuration>