我正在尝试使用链接
在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”,模式正在运行,但是我的自定义布局不起作用。
我想在编码器标签上应用模式标签以及自定义布局标签。是否可以?
有人可以帮助我吗?
答案 0 :(得分:1)
正如您从链接中看到的那样,默认编码器是PatternLayoutEncoder
,它支持模式。如果你真的想要同时具备这两种功能,你可以尝试子类化LayoutWrappingEncoder
并自己添加模式功能(或者使用一些聪明的组合)。