如何按级别设置日志格式?

How to set log format by level?

我使用的不仅仅是调试级别。也就是说,debug,info,warn,error打印在scrren
我想在logback.xml.

中按日志级别制作不同的格式

调试级别的格式为%-5level:%msg%n
信息级别的格式为%-5level.%d{yyyy-MM-dd HH:mm:ss}:%msg%n

是否可以按级别制作不同的格式(调试,信息....)?

这是我的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>

你可以写你的 custom layout extending LayoutBase 以获得最大的灵活性。

您需要重写doLayout方法的代码

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