无法在logback.xml中应用<pattern> </pattern>

时间:2014-12-25 11:05:55

标签: java xml logging customization logback

我正在尝试使用链接

在Logback中创建自定义布局

Creating a custom layout in Logback

我成功创建了日志文件。

问题是当我在logback.xml的编码器标签中应用“pattern”标签时,

<appender name="appLogFileAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>C:/tmp.log</fileNamePattern>
        </rollingPolicy>

 **<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
             <pattern> %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n </pattern>
             <layout class="com.dces.util.LoggingConsoleLayout" />
        </encoder>
    </appender>**

它不会应用于已创建的日志文件,而且我将获得没有日期和时间的内容。

- [错误] main.java.com.srccodes.log.LogbackHello - 欢迎使用Logback的HelloWorld示例。 - [错误] main.java.com.srccodes.log.LogbackHello - 虚假错误消息。

实际上,如果我在编码器标签中删除class =“ch.qos.logback.core.encoder.LayoutWrappingEncoder”,模式正在运行,但是我的自定义布局不起作用。

我想在编码器标签上应用模式标签以及自定义布局标签。是否可以?

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

正如您从链接中看到的那样,默认编码器是PatternLayoutEncoder,它支持模式。如果你真的想要同时具备这两种功能,你可以尝试子类化LayoutWrappingEncoder并自己添加模式功能(或者使用一些聪明的组合)。