有什么方法可以在logback.xml中添加多模式?

问题描述 投票:0回答:1

我正在努力实现记录器,并尝试使用ERROR级别日志以不同的模式打印记录器语句。

这是用于打印记录器的XML配置。有没有办法添加多个模式并根据条件打印语句。

<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOG_HOME:-logs}/${LOG_FILE_NAME:-eportal-daas}.log</file>
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <Pattern>
            %d{yyyy-MM-dd HH:mm:ss} %-5level [%thread] %logger - %M - %L :[trackId=%X{trackId}]|uuid=%uuid|accountName=%X{accountName}|appName=%X{appName}|userName=%X{userName}|exceptionIssueCode=%expRoot|
                :errorMessage=%msg
                :stackTrace=%ex %n
            </Pattern>
        </encoder>
    </appender>

下面是使用Java记录器代码的示例语句

logger.error("********* Application Started Successfully *********");

2020-01-29 13:14:00 ERROR [main] com.apptium.Application - main - 64 :[trackId=]|uuid=66d1caaa-17ae-46c9-abf2-28f0da789353|accountName=|appName=|userName=|exceptionIssueCode=EP03NANIL -> UNEXPECTED ERROR|
                :errorMessage=********* Application Started Successfully *********
                :stackTrace= 

从技术上讲,这不是错误消息。根级别被配置为错误。我需要以其他图案打印。我正在使用slf4j。

java slf4j spring-logback
1个回答
-1
投票

您可以添加具有不同模式和filter for levels的多个附加程序:

<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
  <filter class="ch.qos.logback.classic.filter.LevelFilter">
    <level>INFO</level>
    <onMatch>ACCEPT</onMatch>
    <onMismatch>DENY</onMismatch>
  </filter>
  <encoder>
    <Pattern>
  ...
</appender>

<appender name="fout"...
</appender>

<root level="INFO">
  <appender-ref ref="FILE" />
  <appender-ref ref="fout" />
</root>

https://stackoverflow.com/a/5653532/9928822

© www.soinside.com 2019 - 2024. All rights reserved.