|
@@ -0,0 +1,143 @@
|
|
|
+<?xml version="1.0" encoding="UTF-8"?>
|
|
|
+<!--debug="true" : 打印 logback 内部状态(默认当 logback 运行出错时才会打印内部状态 ), 配置该属性后打印条件如下(同时满足):
|
|
|
+ 1、找到配置文件
|
|
|
+ 2、配置文件是一个格式正确的xml文件 也可编程实现打印内部状态,
|
|
|
+ 例如: LoggerContext lc = (LoggerContext)LoggerFactory.getILoggerFactory(); StatusPrinter.print(lc); -->
|
|
|
+<!-- scan="true" : 自动扫描该配置文件,若有修改则重新加载该配置文件 -->
|
|
|
+<!-- scanPeriod="30 seconds" : 配置自动扫面时间间隔
|
|
|
+ (单位可以是:milliseconds, seconds, minutes or hours,默认为:milliseconds),
|
|
|
+ 默认为1分钟,scan="true"时该配置才会生效 -->
|
|
|
+ <!--https://raw.githubusercontent.com/enricopulatzo/logback-XSD/master/src/main/xsd/logback.xsd-->
|
|
|
+<configuration
|
|
|
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
|
+ xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/enricopulatzo/logback-XSD/master/src/main/xsd/logback.xsd"
|
|
|
+ debug="false" scan="true" scanPeriod="30 seconds">
|
|
|
+
|
|
|
+ <property name="PROJECT" value="lift-push"/>
|
|
|
+ <property name="ROOT" value="logs/${PROJECT}/"/>
|
|
|
+ <property name="FILE_SIZE" value="10MB"/>
|
|
|
+ <property name="MAX_HISTORY" value="100"/>
|
|
|
+
|
|
|
+ <property name="PATTERN" value="[%-5level] %d{yyyy-MM-dd HH:mm:ss} [%thread] %logger{30} - %m%n" />
|
|
|
+ <!-- 控制台打印 -->
|
|
|
+ <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
|
|
|
+ <!--是否支持ANSI color codes(类似linux中的shell脚本的输出字符串颜色控制代码)。默认为false。如果设置为true。例如:[31m 代表将前景色设置成红色。-->
|
|
|
+ <!--在windows中,需要提供"org.fusesource.jansi:jansi:1.9",而在linux,mac os x中默认支持。-->
|
|
|
+ <!--<withJansi>true</withJansi>-->
|
|
|
+ <encoder charset="utf-8">
|
|
|
+ <!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符-->
|
|
|
+ <!--"%black", "%red", "%green","%yellow","%blue", "%magenta","%cyan", "%white", "%gray", "%boldRed","%boldGreen", -->
|
|
|
+ <!--"%boldYellow", "%boldBlue", "%boldMagenta""%boldCyan", "%boldWhite" and "%highlight"-->
|
|
|
+ <pattern>%highlight([%-5level]) %highlight(%d{yyyy-MM-dd HH:mm:ss}) %cyan([%thread]) %boldMagenta(%logger{30}) - %m%n
|
|
|
+ </pattern>
|
|
|
+ </encoder>
|
|
|
+ </appender>
|
|
|
+ <!-- ERROR 输入到文件,按日期和文件大小 -->
|
|
|
+ <appender name="ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
|
|
+ <encoder charset="utf-8">
|
|
|
+ <pattern>${PATTERN}</pattern>
|
|
|
+ </encoder>
|
|
|
+ <filter class="ch.qos.logback.classic.filter.LevelFilter">
|
|
|
+ <level>ERROR</level>
|
|
|
+ <onMatch>ACCEPT</onMatch>
|
|
|
+ <onMismatch>DENY</onMismatch>
|
|
|
+ </filter>
|
|
|
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
|
|
+ <fileNamePattern>${ROOT}%d/error.%i.log</fileNamePattern>
|
|
|
+ <maxHistory>${MAX_HISTORY}</maxHistory>
|
|
|
+ <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
|
|
|
+ <maxFileSize>${FILE_SIZE}</maxFileSize>
|
|
|
+ </timeBasedFileNamingAndTriggeringPolicy>
|
|
|
+ </rollingPolicy>
|
|
|
+ </appender>
|
|
|
+
|
|
|
+ <!-- WARN 输入到文件,按日期和文件大小 -->
|
|
|
+ <appender name="WARN" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
|
|
+ <encoder charset="utf-8">
|
|
|
+ <pattern>${PATTERN}</pattern>
|
|
|
+ </encoder>
|
|
|
+ <filter class="ch.qos.logback.classic.filter.LevelFilter">
|
|
|
+ <level>WARN</level>
|
|
|
+ <onMatch>ACCEPT</onMatch>
|
|
|
+ <onMismatch>DENY</onMismatch>
|
|
|
+ </filter>
|
|
|
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
|
|
+ <fileNamePattern>${ROOT}%d/warn.%i.log</fileNamePattern>
|
|
|
+ <maxHistory>${MAX_HISTORY}</maxHistory>
|
|
|
+ <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
|
|
|
+ <maxFileSize>${FILE_SIZE}</maxFileSize>
|
|
|
+ </timeBasedFileNamingAndTriggeringPolicy>
|
|
|
+ </rollingPolicy>
|
|
|
+ </appender>
|
|
|
+
|
|
|
+ <!-- INFO 输入到文件,按日期和文件大小 -->
|
|
|
+ <appender name="INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
|
|
+ <encoder charset="utf-8">
|
|
|
+ <pattern>[%-5level] %d{${DATETIME}} [%thread] %logger{30} - %m%n</pattern>
|
|
|
+ </encoder>
|
|
|
+ <filter class="ch.qos.logback.classic.filter.LevelFilter">
|
|
|
+ <level>INFO</level>
|
|
|
+ <onMatch>ACCEPT</onMatch>
|
|
|
+ <onMismatch>DENY</onMismatch>
|
|
|
+ </filter>
|
|
|
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
|
|
+ <fileNamePattern>${ROOT}%d/info.%i.log</fileNamePattern>
|
|
|
+ <maxHistory>${MAX_HISTORY}</maxHistory>
|
|
|
+ <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
|
|
|
+ <maxFileSize>${FILE_SIZE}</maxFileSize>
|
|
|
+ </timeBasedFileNamingAndTriggeringPolicy>
|
|
|
+ </rollingPolicy>
|
|
|
+ </appender>
|
|
|
+ <!-- DEBUG 输入到文件,按日期和文件大小 -->
|
|
|
+ <appender name="DEBUG" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
|
|
+ <encoder charset="utf-8">
|
|
|
+ <pattern>${PATTERN}</pattern>
|
|
|
+ </encoder>
|
|
|
+ <filter class="ch.qos.logback.classic.filter.LevelFilter">
|
|
|
+ <level>DEBUG</level>
|
|
|
+ <onMatch>ACCEPT</onMatch>
|
|
|
+ <onMismatch>DENY</onMismatch>
|
|
|
+ </filter>
|
|
|
+ <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
|
|
+ <fileNamePattern>${ROOT}%d/debug.%i.log</fileNamePattern>
|
|
|
+ <maxHistory>${MAX_HISTORY}</maxHistory>
|
|
|
+ <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
|
|
|
+ <maxFileSize>${FILE_SIZE}</maxFileSize>
|
|
|
+ </timeBasedFileNamingAndTriggeringPolicy>
|
|
|
+ </rollingPolicy>
|
|
|
+ </appender>
|
|
|
+ <!-- TRACE 输入到文件,按日期和文件大小 -->
|
|
|
+ <appender name="TRACE" class="ch.qos.logback.core.rolling.RollingFileAppender">
|
|
|
+ <encoder charset="utf-8">
|
|
|
+ <pattern>${PATTERN}</pattern>
|
|
|
+ </encoder>
|
|
|
+ <filter class="ch.qos.logback.classic.filter.LevelFilter">
|
|
|
+ <level>TRACE</level>
|
|
|
+ <onMatch>ACCEPT</onMatch>
|
|
|
+ <onMismatch>DENY</onMismatch>
|
|
|
+ </filter>
|
|
|
+ <rollingPolicy
|
|
|
+ class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
|
|
|
+ <fileNamePattern>${ROOT}%d/trace.%i.log</fileNamePattern>
|
|
|
+ <maxHistory>${MAX_HISTORY}</maxHistory>
|
|
|
+ <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
|
|
|
+ <maxFileSize>${FILE_SIZE}</maxFileSize>
|
|
|
+ </timeBasedFileNamingAndTriggeringPolicy>
|
|
|
+ </rollingPolicy>
|
|
|
+ </appender>
|
|
|
+
|
|
|
+ <!-- SQL相关日志输出-->
|
|
|
+ <logger name="org.apache.ibatis" level="INFO" additivity="true"/>
|
|
|
+ <logger name="org.mybatis.spring" level="INFO" additivity="false"/>
|
|
|
+ <logger name="com.github.miemiedev.mybatis.paginator" level="INFO" additivity="false"/>
|
|
|
+
|
|
|
+ <!-- Logger 根目录 -->
|
|
|
+ <root level="INFO">
|
|
|
+ <appender-ref ref="STDOUT"/>
|
|
|
+ <appender-ref ref="DEBUG"/>
|
|
|
+ <appender-ref ref="ERROR"/>
|
|
|
+ <appender-ref ref="WARN"/>
|
|
|
+ <appender-ref ref="INFO"/>
|
|
|
+ <appender-ref ref="TRACE"/>
|
|
|
+ </root>
|
|
|
+</configuration>
|