记录不同级别的不同文件

Jaa*_*nus 4 java logging logback slf4j

我在logback.xml中有这个appender

<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <File>logFile.log</File>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <FileNamePattern>logFile.%d{yyyy-MM-dd}.log</FileNamePattern>
        <maxHistory>5</maxHistory>
    </rollingPolicy>

    <layout class="ch.qos.logback.classic.PatternLayout">
        <Pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{35} - %msg%n</Pattern>
    </layout>
</appender> 

<root>
    <level value="ALL" />
    <appender-ref ref="FILE" />
</root>
Run Code Online (Sandbox Code Playgroud)

所以目前我将所有日志保存到一个文件中.我怎么能这样,一个文件只保存错误日志而其他文件保存所有其他文件?

我想在我的代码中只使用一个logger实例,如下所示:

 private static final Logger log = LoggerFactory.getLogger(Main.class);
Run Code Online (Sandbox Code Playgroud)

Jaa*_*nus 16

开始寻找回溯类别,找到过滤器.

只需将过滤器描述添加到您的appender:

    <filter class="ch.qos.logback.classic.filter.LevelFilter">
        <level>ERROR</level>
        <onMatch>ACCEPT</onMatch>
        <onMismatch>DENY</onMismatch>
    </filter>
Run Code Online (Sandbox Code Playgroud)