【问题标题】:Log4j2 regular expressionsLog4j2 正则表达式
【发布时间】:2014-09-22 16:18:18
【问题描述】:

我正在使用 log4j2 配置文件设置来尝试使配置文件使用正则表达式,以便它可以在 logger 属性和 name 属性中使用多个类。这是我迄今为止尝试过的,但似乎不起作用。

<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="WARN" monitorInterval="30">
    <Appenders>
        <Console name="Console" target="SYSTEM_OUT">
            <PatternLayout pattern="%d{yyyy-MM-dd 'at' HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
        </Console>
        <File name="ERROR_FILE" fileName="../log/error.log">
            <PatternLayout pattern="%d{yyyy-MM-dd 'at' HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
        </File>
        <File name="EVENT_FILE" fileName="../log/event.log">
            <PatternLayout pattern="%d{yyyy-MM-dd 'at' HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
        </File>
    </Appenders>
    <Loggers>
        <Logger name="foo.test" level="trace"
            additivity="false">
            <AppenderRef ref="Console" />
        </Logger>       
        <Logger name="foo.*" level="debug"
            additivity="false">
            <AppenderRef ref="ERROR_FILE" level="ERROR"/>
            <AppenderRef ref="EVENT_FILE" level="INFO"/>
        </Logger>       
        <Root level="trace">
            <AppenderRef ref="Console" />
        </Root>
    </Loggers>
</Configuration>

有没有人能够在 log4j2 配置文件中成功使用正则表达式甚至 glob?

【问题讨论】:

    标签: java regex configuration log4j2


    【解决方案1】:

    我发现我根本不需要将正则表达式放在包名中。例如,如果在我的 foo 包中我有 foo.bar、foo.foo 和 foo.test。我会将 foo 放在 Logger 属性名称属性中,以记录以 foo 开头的 3 个包中的任何一个包中的 ERROR 和 INFO 级别日志。

    <?xml version="1.0" encoding="UTF-8"?>
    <Configuration status="WARN" monitorInterval="30">
        <Appenders>
            <Console name="Console" target="SYSTEM_OUT">
                <PatternLayout pattern="%d{yyyy-MM-dd 'at' HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
            </Console>
            <File name="ERROR_FILE" fileName="../log/error.log">
                <PatternLayout pattern="%d{yyyy-MM-dd 'at' HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
            </File>
            <File name="EVENT_FILE" fileName="../log/event.log">
                <PatternLayout pattern="%d{yyyy-MM-dd 'at' HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
            </File>
        </Appenders>
        <Loggers>
            <Logger name="foo.test" level="trace"
                additivity="false">
                <AppenderRef ref="Console" />
            </Logger>       
            <Logger name="foo" level="debug"
                additivity="false">
                <AppenderRef ref="ERROR_FILE" level="ERROR"/>
                <AppenderRef ref="EVENT_FILE" level="INFO"/>
            </Logger>       
            <Root level="trace">
                <AppenderRef ref="Console" />
            </Root>
        </Loggers>
    </Configuration>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-08-20
      • 2015-12-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多