【问题标题】:How to define a global PatternLayout for log4j2?如何为 log4j2 定义全局 PatternLayout?
【发布时间】:2014-01-25 07:41:49
【问题描述】:

是否可以在log4j2.xml 配置文件中定义(命名的)PatternLayout

<?xml version="1.0" encoding="UTF-8"?>
  <configuration status="ERROR">
    <appenders>
      <Console name="CONSOLE" target="SYSTEM_OUT">
        <PatternLayout pattern="%d %-5p %C{2} (%F:%L) - %m%n" />
      </Console>

      <File name="DEBUG_FILE" fileName="debug.txt">
        <PatternLayout pattern="%d %-5p %C{2} (%F:%L) - %m%n" />
      </File>
    </appenders>

    <loggers>
      <root level="trace">
        <appender-ref ref="CONSOLE" />
        <appender-ref ref="DEBUG_FILE" />
      </root>
    </loggers> 

</configuration>

在此示例中,PatternLayout 被重复。我可以用名称以某种方式全局定义它,然后只使用名称引用来为每个附加程序设置模式吗?

【问题讨论】:

  • 您还可以在here 发布的问题中查看 log4j2.xml 中的属性使用情况。

标签: java logging log4j2


【解决方案1】:

根据官方documentation,你可以定义一个“属性”并复用它的值。

在本例中,我定义了appenderPatternLayout 属性。

这里是完整代码(使用 Log4J 2.3 测试):

<?xml version="1.0" encoding="UTF-8"?>
<Configuration>

    <Properties>
        <Property name="appenderPatternLayout">%d %-5p %C{2} (%F:%L) - %m%n</Property>
    </Properties>

    <Appenders>
        <Console name="CONSOLE" target="SYSTEM_OUT">
            <PatternLayout pattern="${appenderPatternLayout}" />
        </Console>
        <File name="DEBUG_FILE" fileName="debug.txt">
            <PatternLayout pattern="${appenderPatternLayout}" />
        </File>
    </Appenders>

    <Loggers>
        <Root level="trace">
            <AppenderRef ref="CONSOLE" />
            <AppenderRef ref="DEBUG_FILE" />
        </Root>
    </Loggers> 
</Configuration>

【讨论】:

    【解决方案2】:

    找到了:

    定义:

        <Properties>
            <property name="path">c:/logs/</property>
        </Properties>
    

    使用:

       <RollingFile fileName="${path}mylog.log"
    

    【讨论】:

    • 这与问题有什么关系?
    • 嗯,问题是:如何定义全局属性。我的回答是:如何定义一个全局属性;)
    • 哦,现在我明白了。我建议对答案进行编辑,以使用问题中示例中的代码,因此连接变得清晰。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-17
    • 2017-10-15
    • 2013-07-30
    • 1970-01-01
    相关资源
    最近更新 更多