log4j2自定义日志级别

项目中需要打印一些特定信息到日志中,因为不想掺杂一些其他的日志,所以自定义一个日志级别

日志级别以及优先级排序: OFF > FATAL > ERROR > WARN > INFO > DEBUG > TRACE > ALL

intLevel值依次为0,100,200,300,400,500,600,700
intLevel 值越小,级别越高

具体代码如下:
log4j2.xml

<configuration status="DEBUG" monitorInterval="30">

	<CustomLevels>
		<!--注意 : intLevel 值越小,级别越高 (log4j2 官方文档)-->
		<CustomLevel name="CUSTOMER" intLevel="50" />
	</CustomLevels>

	<!--先定义所有的appender -->
	<appenders>
		<RollingFile name="RollingFileCustomer" fileName="logs/customer.log" filePattern="${sys:user.home}/logs/$${date:yyyy-MM}/customer-%d{yyyy-MM-dd}-%i.log">
			<ThresholdFilter level="CUSTOMER" onMatch="ACCEPT" onMismatch="DENY" />
			<PatternLayout pattern="%m%n" />
			<Policies>
				<TimeBasedTriggeringPolicy />
				<SizeBasedTriggeringPolicy size="100 MB" />
			</Policies>
		</RollingFile>
	</appenders>
	<!--然后定义logger,只有定义了logger并引入的appender,appender才会生效 -->
	<loggers>
		<root level="INFO">
			<appender-ref ref="RollingFileCustomer" />
		</root>
	</loggers>
</configuration>

class中进行日志打印

private org.apache.logging.log4j.Logger log = LogManager.getLogger(AuthenticationInterceptor.class.getName());

log.log(Level.forName("CUSTOMER", 50), "{},{},{}",uid, DateUtil.datetime2String(new Date()),requestURI);

输出结果

18,2018-12-26 21:23:31,/java/api/usr/getUserInfo
34,2018-12-26 21:23:32,/java/api/userPlan/findUserPlan
18,2018-12-26 21:24:09,/java/api/usr/getUserInfo
18,2018-12-26 21:24:38,/java/api/usr/getUserInfo
18,2018-12-26 21:24:51,/java/api/usr/getUserInfo
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值