【问题标题】:Cant able to appy <pattern> in logback.xml无法在 logback.xml 中应用 <pattern>
【发布时间】:2015-02-23 03:30:31
【问题描述】:

我正在尝试使用链接在 Logback 中创建自定义布局,

Creating a custom layout in Logback

我成功创建了日志文件。

问题是当我像这样在 logback.xml 的编码器标签中应用“模式”标签时,

<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>**

它不适用于创建的日志文件,我得到的内容没有如下日期和时间。

-- [ERROR]main.java.com.srccodes.log.LogbackHello - 欢迎来到 Logback 的 HelloWorld 示例。 -- [ERROR]main.java.com.srccodes.log.LogbackHello - 虚拟错误消息。

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

我想在编码器标签上应用pattern标签以及自定义layout标签。可以吗?

谁能帮我解决这个问题?

【问题讨论】:

    标签: java xml logging customization logback


    【解决方案1】:

    正如您从链接中看到的,默认编码器是支持模式的PatternLayoutEncoder。如果你真的想同时拥有这两种功能,你可以尝试继承 LayoutWrappingEncoder 并自己添加模式功能(或者可能通过一些巧妙的组合)。

    【讨论】:

      猜你喜欢
      • 2015-06-02
      • 1970-01-01
      • 2013-10-16
      • 2019-05-19
      • 2021-08-26
      • 1970-01-01
      • 2015-05-14
      • 1970-01-01
      • 2018-12-13
      相关资源
      最近更新 更多