<?xml version="1.0" encoding="UTF-8"?>
<configuration scan="true" scanPeriod="600 seconds" debug="false">
<!-- 当此属性设置为true时,配置文件如果发生改变,将会被重新加载,默认值为true。(这个功能可以在不重启运行环境下,调整打印日志的细节,方便定位问题)-->
<!-- 设置监测配置文件是否有修改的时间间隔,如果没有给出时间单位,默认单位是毫秒。当scan为true时,此属性生效。默认的时间间隔为1分钟。-->
<!-- 当此属性设置为true时,将打印出logback内部日志信息,实时查看logback运行状态。默认值为false。-->
<!-- Logger 可以被分配级别。级别包括:TRACE < DEBUG < INFO < WARN < ERROR-->
<!-- 属性定义 -->
<property name="LOG_HOME" value="/root/logs"/>
<property name="appName" value="shopAdmin"/>
<property name="maxHistory" value="7"/>
<!--控制台输出的格式设置 -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<!-- 对日志进行格式化 -->
<pattern>%d{yyyy-MM-dd HH:mm:ss:SSS} [%thread] %-5level %logger{50}\(%F %L\) -%msg%n
<charset>UTF-8</charset> <!-- 此处设置字符集 -->
<!-- 只是DEBUG级别以上的日志才显示 -->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>DEBUG
<!-- INFO级别日志 -->
<appender name="INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 过滤器,只记录「INFO」级别的日志 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO
<onMatch>ACCEPT
<onMismatch>DENY
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${LOG_HOME}/info/infoLog-%d{yyyy-MM-dd}.%i.txt
<maxFileSize>10MB
<maxHistory>${maxHistory}
<totalSizeCap>64MB
<pattern>%d{yyyy-MM-dd HH:mm:ss:SSS} [%thread] %-5level %logger{50}\(%F %L\) -%msg%n
<charset>UTF-8
<!-- INFO级别日志 -->
<appender name="DEBUG" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 过滤器,只记录「INFO」级别的日志 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>DEBUG
<onMatch>ACCEPT
<onMismatch>DENY
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${LOG_HOME}/debug/debugLog-%d{yyyy-MM-dd}.%i.txt
<maxFileSize>10MB
<maxHistory>${maxHistory}
<totalSizeCap>64MB
<pattern>%d{yyyy-MM-dd HH:mm:ss:SSS} [%thread] %-5level %logger{50}\(%F %L\) -%msg%n
<charset>UTF-8
<!-- WARN级别日志 -->
<appender name="WARN" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 过滤器,只记录「WARN」级别的日志 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>WARN
<onMatch>ACCEPT
<onMismatch>DENY
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${LOG_HOME}/warn/warnLog-%d{yyyy-MM-dd}.%i.txt
<maxFileSize>10MB
<maxHistory>${maxHistory}
<totalSizeCap>64MB
<pattern>%d{yyyy-MM-dd HH:mm:ss:SSS} [%thread] %-5level %logger{50}\(%F %L\) -%msg%n
<charset>UTF-8
<!-- ERROR级别日志 -->
<appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 过滤器,只记录「ERROR」级别的日志 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR
<onMatch>ACCEPT
<onMismatch>DENY
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${LOG_HOME}/error/errorLog-%d{yyyy-MM-dd}.%i.txt
<maxFileSize>10MB
<maxHistory>${maxHistory}
<totalSizeCap>64MB
<pattern>%d{yyyy-MM-dd HH:mm:ss:SSS} [%thread] %-5level %logger{50}\(%F %L\) -%msg%n
<charset>UTF-8
<!-- logger:日志所处的包 level:日志打印级别-->
<root level="debug">
<appender-ref ref="STDOUT"/>
<appender-ref ref="INFO"/>
<appender-ref ref="WARN"/>
<appender-ref ref="ERROR"/>
<appender-ref ref="DEBUG"/>