Files
nuttyreading-java/src/main/resources/logback-spring.xml
wangjinlei d099c05e90 1
2024-03-15 14:25:19 +08:00

225 lines
12 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- <include resource="org/springframework/boot/logging/logback/base.xml" />-->
<!-- <logger name="org.springframework.web" level="${logging.my.webLevel}" additivity="false" />-->
<!-- <logger name="org.springboot.sample" level="${logging.my.sampleLevel}" additivity="false"/>-->
<!-- <logger name="com.peanut" level="DEBUG"/>-->
<!-- &lt;!&ndash; 开发、测试环境 &ndash;&gt;-->
<!-- <springProfile name="dev,test">-->
<!-- <logger name="org.springframework.web" level="INFO"/>-->
<!-- <logger name="org.springboot.sample" level="INFO" />-->
<!-- <logger name="com.peanut" level="DEBUG" />-->
<!-- </springProfile>-->
<!-- &lt;!&ndash; 生产环境 &ndash;&gt;-->
<!-- <springProfile name="prod">-->
<!-- <logger name="org.springframework.web" level="ERROR"/>-->
<!-- <logger name="org.springboot.sample" level="ERROR" />-->
<!-- <logger name="com.peanut" level="ERROR" />-->
<!-- </springProfile>-->
<!-- <springProfile name="prod">-->
<!-- <logger name="org.springframework.web" level="INFO"/>-->
<!-- <logger name="org.springboot.sample" level="INFO" />-->
<!-- <logger name="com.peanut" level="DEBUG" />-->
<!-- </springProfile>-->
<!-- name的值是变量的名称value的值时变量定义的值。通过定义的值会被插入到logger上下文中。定义后可以使“${}”来使用变量。 -->
<property name="log.path" value="./logs"/>
<!-- &lt;!&ndash;0. 日志格式和颜色渲染 &ndash;&gt;-->
<!-- &lt;!&ndash; 彩色日志依赖的渲染类 &ndash;&gt;-->
<conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
<conversionRule conversionWord="wex"
converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
<conversionRule conversionWord="wEx"
converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/>
<!-- &lt;!&ndash; 彩色日志格式 &ndash;&gt;-->
<property name="CONSOLE_LOG_PATTERN"
value="${CONSOLE_LOG_PATTERN:-%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
<!-- &lt;!&ndash;1. 输出到控制台&ndash;&gt;-->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<!--此日志appender是为开发使用只配置最底级别控制台输出的日志级别是大于或等于此级别的日志信息-->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>debug</level>
</filter>
<encoder>
<Pattern>${CONSOLE_LOG_PATTERN}</Pattern>
<!-- 设置字符集 -->
<charset>UTF-8</charset>
</encoder>
</appender>
<appender name="DEBUG_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 正在记录的日志文档的路径及文档名 -->
<file>${log.path}/web_debug.log</file>
<!--日志文档输出格式-->
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
<charset>UTF-8</charset> <!-- 设置字符集 -->
</encoder>
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 日志归档 -->
<fileNamePattern>${log.path}/web-debug-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!--日志文档保留天数-->
<maxHistory>5</maxHistory>
</rollingPolicy>
<!-- 此日志文档只记录debug级别的 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>debug</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- &lt;!&ndash; 2.2 level为 INFO 日志,时间滚动输出 &ndash;&gt;-->
<appender name="INFO_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 正在记录的日志文档的路径及文档名 -->
<file>${log.path}/web_info.log</file>
<!--日志文档输出格式-->
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
<charset>UTF-8</charset>
</encoder>
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 每天日志归档路径以及格式 -->
<fileNamePattern>${log.path}/web-info-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!--日志文档保留天数-->
<maxHistory>5</maxHistory>
</rollingPolicy>
<!-- 此日志文档只记录info级别的 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>info</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- &lt;!&ndash; 2.3 level为 WARN 日志,时间滚动输出 &ndash;&gt;-->
<appender name="WARN_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 正在记录的日志文档的路径及文档名 -->
<file>${log.path}/web_warn.log</file>
<!--日志文档输出格式-->
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
<charset>UTF-8</charset> <!-- 此处设置字符集 -->
</encoder>
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log.path}/web-warn-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!--日志文档保留天数-->
<maxHistory>15</maxHistory>
</rollingPolicy>
<!-- 此日志文档只记录warn级别的 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>warn</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- &lt;!&ndash; 2.4 level为 ERROR 日志,时间滚动输出 &ndash;&gt;-->
<appender name="ERROR_FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- 正在记录的日志文档的路径及文档名 -->
<file>${log.path}/web_error.log</file>
<!--日志文档输出格式-->
<encoder>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n</pattern>
<charset>UTF-8</charset> <!-- 此处设置字符集 -->
</encoder>
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${log.path}/web-error-%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>100MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!--日志文档保留天数-->
<maxHistory>15</maxHistory>
</rollingPolicy>
<!-- 此日志文档只记录ERROR级别的 -->
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- &lt;!&ndash;-->
<!-- <logger>用来设置某一个包或者具体的某一个类的日志打印级别、-->
<!-- 以及指定<appender>。<logger>仅有一个name属性-->
<!-- 一个可选的level和一个可选的addtivity属性。-->
<!-- name:用来指定受此logger约束的某一个包或者具体的某一个类。-->
<!-- level:用来设置打印级别大小写无关TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF-->
<!-- 还有一个特俗值INHERITED或者同义词NULL代表强制执行上级的级别。-->
<!-- 如果未设置此属性那么当前logger将会继承上级的级别。-->
<!-- addtivity:是否向上级logger传递打印信息。默认是true。-->
<!-- <logger name="org.springframework.web" level="info"/>-->
<!-- <logger name="org.springframework.scheduling.annotation.ScheduledAnnotationBeanPostProcessor" level="INFO"/>-->
<!-- &ndash;&gt;-->
<!-- &lt;!&ndash;-->
<!-- 使用mybatis的时候sql语句是debug下才会打印而这里我们只配置了info所以想要查看sql语句的话有以下两种操作-->
<!-- 第一种把<root level="info">改成<root level="DEBUG">这样就会打印sql不过这样日志那边会出现很多其他消息-->
<!-- 第二种就是单独给dao下目录配置debug模式代码如下这样配置sql语句会打印其他还是正常info级别-->
<!-- 【logging.level.org.mybatis=debug logging.level.dao=debug】-->
<!-- &ndash;&gt;-->
<!-- &lt;!&ndash;-->
<!-- root节点是必选节点用来指定最基础的日志输出级别只有一个level属性-->
<!-- level:用来设置打印级别大小写无关TRACE, DEBUG, INFO, WARN, ERROR, ALL 和 OFF-->
<!-- 不能设置为INHERITED或者同义词NULL。默认是DEBUG-->
<!-- 可以包含零个或多个元素标识这个appender将会添加到这个logger。-->
<!-- &ndash;&gt;-->
<!-- &lt;!&ndash; 4. 最终的策略 &ndash;&gt;-->
<!-- &lt;!&ndash; 4.1 开发环境:打印控制台&ndash;&gt;-->
<springProfile name="dev,dev1">
<include resource="org/springframework/boot/logging/logback/base.xml" />
<!-- <logger name="org.springframework.web" level="DEBUG"/>-->
<!-- <logger name="org.springboot.sample" level="DEBUG" />-->
<logger name="com.peanut" level="DEBUG" additivity="false">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="DEBUG_FILE"/>
<appender-ref ref="INFO_FILE"/>
<appender-ref ref="WARN_FILE"/>
<appender-ref ref="ERROR_FILE"/>
</logger>
</springProfile>
<!-- <root level="info">-->
<!--&lt;!&ndash; <appender-ref ref="CONSOLE" />&ndash;&gt;-->
<!-- <appender-ref ref="DEBUG_FILE" />-->
<!-- <appender-ref ref="INFO_FILE" />-->
<!-- <appender-ref ref="WARN_FILE" />-->
<!-- <appender-ref ref="ERROR_FILE" />-->
<!-- </root>-->
<!-- &lt;!&ndash; 4.2 生产环境:输出到文档&ndash;&gt;-->
<springProfile name="test,prod">
<logger name="com.peanut" level="DEBUG" additivity="false">
<appender-ref ref="DEBUG_FILE"/>
<appender-ref ref="ERROR_FILE"/>
</logger>
<root level="info">
<appender-ref ref="DEBUG_FILE"/>
<appender-ref ref="ERROR_FILE"/>
<appender-ref ref="WARN_FILE"/>
</root>
</springProfile>
</configuration>