bittap
bittap

Reputation: 548

How to set log format by level?

I am using more than debug level. In other words,debug,info,warn,error Printed out in scrren
I would like to make different format by log level in logback.xml.

Format of debug level is %-5level:%msg%n
Format of info level is %-5level.%d{yyyy-MM-dd HH:mm:ss}:%msg%n

Is it possble to make different format by level(debug,info....)?

This is my logback.xml.

<configuration scan="true" scanPeriod="30">
 <!--debug level format-->
 <appender name="STDOUT_DEBUG" class="ch.qos.logback.core.ConsoleAppender">
    <target>System.out</target>
    <encoder>
        <pattern>%-5level:%msg%n</pattern>
    </encoder>
 <!--info level format-->
 <appender name="STDOUT_INFO" class="ch.qos.logback.core.ConsoleAppender">
    <target>System.out</target>
    <encoder>
        <pattern>%-5level.%d{yyyy-MM-dd HH:mm:ss}:%msg%n</pattern>
    </encoder>
</appender>

<!-- I don't know How to set-->

</configuration>

Upvotes: 0

Views: 246

Answers (1)

Davide Lorenzo MARINO
Davide Lorenzo MARINO

Reputation: 26926

You can write your custom layout extending LayoutBase to have the maximum flexibility.

You need to rewrite the code of the doLayout method

public String doLayout(ILoggingEvent event) {
    switch (event.getLevel()) {
        ... // Your logic here
    }
}

Upvotes: 1

Related Questions