Search code examples
javalogginglogbackslf4j

How to omit not existing values for logback appender?


I have really basic logback configuration:

<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
        <pattern>
            %date %-5level [%thread] - [%logger] - [someArg:%X{someArg}] - %msg%n
        </pattern>
    </encoder>
</appender>

<root level="INFO">
    <appender-ref ref="CONSOLE"/>
</root>

I don't want to paste someArg from MDC for each application logs, how can I omit it if someArgs not exists?


Solution

  • You can use replace omit it if someArgs not exists. like this:

    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>
                %date %-5level [%thread] - [%logger] %replace(- [someArg:%X{someArg}] ){'- \[someArg:\] ',''}- %msg%n
            </pattern>
        </encoder>
    </appender>