logback实现每个类和包自定义级别输出

目的

由于要实现需求:将特定的跟踪日志写入单独的日志文件,且其他的日志输出不受影响。故需要实现一个自定义的日志级别并指定配置文件,将特定的日志信息输入特定文件。

1、自定义日志级别方式如下:

代码文件:Logger monitorLogger = LoggerFactory.getLogger(“monitor”);
//在声明实例时创建自定义级别标签,monitor就是自定义的标签。

2、输出日志采用这样的方式:

monitorLogger.info("======info");

3、配置文件修改:

增加一个自定义appender并进行相应配置

<!-- 自定义导出配置 -->
	<appender name="INSERTLOG" class="ch.qos.logback.core.rolling.RollingFileAppender">
		<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
			<!--日志文件输出的文件名 -->
			<FileNamePattern>${LOG_HOME}/test-%d{yyyy-MM-dd}.%i.log</FileNamePattern>
			<!--日志文件保留天数 -->
			<MaxHistory>30</MaxHistory>
			<maxFileSize>10MB</maxFileSize>
		</rollingPolicy>
		<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
			<!--格式化输出:%d表示日期,%thread表示线程名,%-5level:级别从左显示5个字符宽度%msg:日志消息,%n是换行符 -->
			<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50}:%L - %msg%n</pattern>
		</encoder>
		 <filter class="ch.qos.logback.classic.filter.LevelFilter"><!-- 只打info以上级别日志 -->  
		        <level>INFO</level>  
		        <onMatch>ACCEPT</onMatch>  
		        <onMismatch>DENY</onMismatch>  
		    </filter>
	</appender>
	<!-- name="monitor":设置日志名为monitor的日志 -->
	<!-- additivity="false":只在当前appender中打印 -->
	<logger name="monitor" level="DEBUG" additivity="false">
		<!-- 添加appender -->
		<appender-ref ref="INSERTLOG" />
	</logger>

测试打印
在这里插入图片描述
日志打印成功!
在这里插入图片描述

补充

Log4j2的onMatch和onMismatch属性值详解
onMatch和onMismatch都有三个属性值,分别为Accept、DENY和NEUTRAL

分别介绍这两个配置项的三个属性值:

onMatch=“ACCEPT” 表示匹配该级别及以上
onMatch=“DENY” 表示不匹配该级别及以上
onMatch=“NEUTRAL” 表示该级别及以上的,由下一个filter处理,如果当前是最后一个,则表示匹配该级别及以上
onMismatch=“ACCEPT” 表示匹配该级别以下
onMismatch=“NEUTRAL” 表示该级别及以下的,由下一个filter处理,如果当前是最后一个,则不匹配该级别以下的
onMismatch=“DENY” 表示不匹配该级别以下的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值