logback-spring.xml配置文件

集成到springboot的yml格式配置文件的示例:

logging:
  config: classpath:logback-spring.xml
  level:
    dao: debug
    org:
      mybatis: debug

logback-spring.xml

<?xml version="1.0" encoding="utf-8"?>
<configuration>
	<property name="LOG_INFO_HOME" value="/data/www/admin/log/shopping" />
	<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" />
	<!-- 彩色日志格式 -->
	<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}}"/>

	<appender name="CONSOLE-LOG" class="ch.qos.logback.core.ConsoleAppender">
		<layout class="ch.qos.logback.classic.PatternLayout">
			<pattern>${CONSOLE_LOG_PATTERN}</pattern>
		</layout>
	</appender>
	<appender name="INFO-LOG"
		class="ch.qos.logback.core.rolling.RollingFileAppender">
		<!-- 打印info日志 -->
		<filter class="ch.qos.logback.classic.filter.LevelFilter">
			<level>ERROR</level>
			<onMatch>DENY</onMatch><!-- 匹配到ERROR就拒绝 -->
			<onMismatch>ACCEPT</onMismatch><!-- 没有匹配到ERROR就接受 -->
		</filter>
		<encoder>
			<pattern>[%d{yyyy-MM-dd' 'HH:mm:ss.sss}] [%C] [%t] [%L] [%-5p] %m%n</pattern>
		</encoder>
		<!--滚动策略 -->
		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
			<!--路径 -->
			<fileNamePattern>${LOG_INFO_HOME}/info/info.%d.log</fileNamePattern>
			<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
				<maxFileSize>100MB</maxFileSize>
			</timeBasedFileNamingAndTriggeringPolicy>
			<!--日志文档保留天数-->
			<maxHistory>15</maxHistory>
		</rollingPolicy>
	</appender>
	<appender name="ERROR-LOG"
		class="ch.qos.logback.core.rolling.RollingFileAppender">
		<!-- 打印error日志 -->
		<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
			<level>ERROR</level>
		</filter>
		<encoder>
			<pattern>[%d{yyyy-MM-dd' 'HH:mm:ss.sss}] [%C] [%t] [%L] [%-5p] %m%n</pattern>
		</encoder>
		<!--滚动策略 -->
		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
			<!--路径 -->
			<fileNamePattern>${LOG_INFO_HOME}/error/error.%d.log</fileNamePattern>
		</rollingPolicy>
		<!-- 此日志文档只记录debug级别的 -->
		<filter class="ch.qos.logback.classic.filter.LevelFilter">
			<level>ERROR</level>
			<onMatch>ACCEPT</onMatch>
			<onMismatch>DENY</onMismatch>
		</filter>
	</appender>
	
	<!-- 设置info级别打印格式 -->
	<root level="info">
		<appender-ref ref="CONSOLE-LOG" />
		<appender-ref ref="INFO-LOG" />
		<appender-ref ref="ERROR-LOG" />
	</root>
	<!-- 设置包打印日志级别 -->
	<logger name="com.ycdz.mapper" level="debug" additivity="false">
	 	<appender-ref ref="CONSOLE-LOG" />
	</logger>
</configuration> 


标签层级关系说明
<property>设置变量,可以在下面的配置中引用变量名称${变量名}
<root>标签,必填标签,用来指定最基础的日志输出级别

  • <appender-ref>标签,添加append

<append>标签,通过使用该标签指定日志的收集策略

  • name属性指定appender命名,命名从root标签的appender-ref而来

  • class属性指定输出策略,通常有两种,控制台输出和文件输出,文件输出就是将日志进行一个持久化。ConsoleAppender将日志输出到控制台

  • <filter>标签,通过使用该标签指定过滤策略

    • <level>标签指定过滤的类型
  • <encoder>标签,使用该标签下的标签指定日志输出格式

    • <rollingPolicy>标签指定收集策略,比如基于时间进行收集
    • <fileNamePattern>标签指定生成日志保存地址,通过这样配置已经实现了分类分天手机日志的目标了
  • logger属性:

    • name:用来指定受此logger约束的某一个包或者具体的某一个类
    • level:用来设置打印级别,大小写无关(最常用的几种):DEBUG, INFO, WARN, ERROR

级别分为:TRACE < DEBUG < INFO < WARN < ERROR < FATAL

只能展示大于或等于设置的日志级别的日志;也就是说springboot默认级别为INFO,那么在控制台展示的日志级别只有INFO 、WARN、ERROR、FATAL

logback的additivity=“false” 与root关系

它是 子Logger 是否继承 root的Logger 的 输出源(appender) 的标志位。
在这里插入图片描述
具体说,默认情况下子Logger会继承root的Logger的appender,也就是说子Logger会在root的Logger的appender里输出。

参考

异步日志输出
https://blog.csdn.net/Dome_/article/details/99713648

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值