SpringBoot-Logback 多日志指定配置文件

<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="60 seconds" debug="false">
    <!--这里修改value指向项目绝对路径-->
    <property name="LOG_HOME" value="d:/Work/Java/jingtui/jingtui-task/log" />

    <!--控制台输出-->
    <!--    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">-->
    <!--        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">-->
    <!--            &lt;!&ndash;格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符&ndash;&gt;-->
    <!--            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>-->
    <!--        </encoder>-->
    <!--    </appender>-->

    <!--    整个系统的INFO-->
    <appender name="SystemInfo" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>INFO</level>
        </filter>
        <!-- 每天生成日志文件 -->
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_HOME}/jingtui-task.%d{yyyy-MM-dd}.log
            </fileNamePattern>
        </rollingPolicy>
        <!-- 格式化输出 -->
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>%date{yyyy-MM-dd HH:mm:ss.SSS} | %thread | %-5level | %class{20}:%file\(%line\) | %msg%n</pattern>
        </encoder>
    </appender>

    <!--    整个系统的DEBUG-->
    <!--    <appender name="SystemDebug" class="ch.qos.logback.core.rolling.RollingFileAppender">-->
    <!--        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">-->
    <!--            <level>debug</level>-->
    <!--        </filter>-->
    <!--        &lt;!&ndash; 格式化输出 &ndash;&gt;-->
    <!--        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">-->
    <!--            <pattern>%date{yyyy-MM-dd HH:mm:ss.SSS} | %thread | %-5level | %class{20}:%file\(%line\) | %msg%n</pattern>-->
    <!--        </encoder>-->
    <!--    </appender>-->

    <!--商品更新-->
    <appender name="GoodsSaleUpdated" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>INFO</level>
        </filter>
        <!-- 格式化输出 -->
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>%date{yyyy-MM-dd HH:mm:ss.SSS} | %thread | %-5level | %class{20}:%file\(%line\) | %msg%n</pattern>
        </encoder>

        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!--基于时间创建log-->
            <fileNamePattern>${LOG_HOME}/GoodsSaleUpdated.%d{yyyy-MM-dd}.log
            </fileNamePattern>
        </rollingPolicy>

        <triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
            <maxFileSize>20MB</maxFileSize>
        </triggeringPolicy>
    </appender>

    <!--mybatis的log-->
    <!--myibatis log configure-->
    <!--    <logger name="com.apache.ibatis" level="TRACE"/>-->
    <!--    <logger name="java.sql.Connection" level="DEBUG"/>-->
    <!--    <logger name="java.sql.Statement" level="DEBUG"/>-->
    <!--    <logger name="java.sql.PreparedStatement" level="DEBUG"/>-->

    <!--如果想输出指定日志到指定文件(指定文件无其他日志),就自定义logger注册appender。再.getLogger()拿到对象就可以了。注意不需要注入到root-->
    <!--自定义Logger输出-->
    <logger name="GoodsSaleUpdated" level="info" additivity="false">
        <appender-ref ref="GoodsSaleUpdated" />
    </logger>
    <!--系统日志 捕捉响应level的:ALL-TRACE-DEBUG-INFO-WARN-ERROR-FATAL-OFF的日志-->
    <root level="INFO">
        <appender-ref ref="SystemInfo" />
    </root>


</configuration>
private static final Logger log = LoggerFactory.getLogger("GoodsSaleUpdated");
上一篇:logback配置学习


下一篇:logback日志配置写入多个目录