相关疑难解决方法(0)

Logback - logback.xml 中的布局和模式

我使用 logback 和 slf4j 来登录 Spring Boot 应用程序。我创建了一个自定义布局类,因为所有日志语句都将包装为 json。我已配置 logback-spring.xml 如下所示以采用自定义布局。有用!

问题是我无法应用该模式。只有布局(或)模式起作用。我想要的是始终记录在日志中,转到布局类,然后在记录之前应用模式。

<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${user.home}/logs/sample.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>${user.home}/logs/sample_%d{yyyy-MM-dd}.%i.log</fileNamePattern>

        <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
            <maxFileSize>10MB</maxFileSize>
        </timeBasedFileNamingAndTriggeringPolicy>
        <!-- how many days to keep the files -->
        <maxHistory>30</maxHistory>
    </rollingPolicy>

    <encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
        <layout class="com.test.test.payment.core.logging.SampleLogLayout" >
        </layout>
    </encoder>
    *<!-- <encoder>
        <charset>UTF-8</charset>
        <Pattern>{"@timestamp": "%d{yyyy-MM-dd HH:mm:ss.SSS}", "priority": "%p", "application": "payment",
            "class": "%C", "file": "%F:%L", "payload": %m }%n
        </Pattern>
    </encoder>-->*
</appender>
Run Code Online (Sandbox Code Playgroud)

这是SampleLogLayout课程:

public class SampleLogLayout extends LayoutBase<LoggingEvent> {

    @Override
    public String doLayout(LoggingEvent event) {

        String renderedMessage = event.getMessage(); …
Run Code Online (Sandbox Code Playgroud)

java logback spring-boot

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

java ×1

logback ×1

spring-boot ×1