不同包的不同日志文件:Spring Boot

时间:2018-03-17 00:58:00

标签: spring spring-boot logging

我想根据日志记录级别登录多个文件?是否可以在application.properties的Spring启动中实现,例如error.logs和debug.logs中的错误日志

1 个答案:

答案 0 :(得分:3)

您可以通过修改logback.xml文件,根据不同的日志记录级别登录多个文件。 为多个文件定义不同的appender,然后在logback.xml中定义多个记录器,将每个appender与每个记录器相关联。现在,当您更改日志级别时,不同的文件将相应地写入日志。

INFO日志级别的文件附加程序。

<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>./log/elk-file.log</file>
    <append>true</append>
    <!--cleanHistoryOnStart>true</cleanHistoryOnStart-->
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>./log/elk-file_%d{yyyyMMdd}-%i.log
        </fileNamePattern>
        <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
            <maxFileSize>200MB</maxFileSize>
        </timeBasedFileNamingAndTriggeringPolicy>
        <maxHistory>1</maxHistory>
    </rollingPolicy>
    <encoder>
        <pattern>%date{ISO8601} [%thread] %level{5} %c{3} - %message%n</pattern>
    </encoder>
</appender>

错误日志级别的文件附加程序。

<appender name="FILE_Err" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>./log/elk-file.log</file>
    <append>true</append>
    <!--cleanHistoryOnStart>true</cleanHistoryOnStart-->
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>./log/elk-file_%d{yyyyMMdd}-%i.log
        </fileNamePattern>
        <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
            <maxFileSize>200MB</maxFileSize>
        </timeBasedFileNamingAndTriggeringPolicy>
        <maxHistory>1</maxHistory>
    </rollingPolicy>
    <encoder>
        <pattern>%date{ISO8601} [%thread] %level{5} %c{3} - %message%n</pattern>
    </encoder>
</appender>

现在为Logback.xml中的每个文件定义记录器

<logger name="ro.fortsoft.elk.testdata" level="INFO" additivity="false">
    <appender-ref ref="FILE"/>
</logger>

<logger name="ro.fortsoft.elk.newName" level="ERROR" additivity="false">
    <appender-ref ref="FILE_Err"/>
</logger>

现在让Logger进入你想要使用它的类

private static final org.slf4j.Logger LOGGER1 = LoggerFactory.getLogger("<name of logger define in logback.xml>");

日志将开始相应地显示在不同的文件中。