Log4j2学习笔记

log4j2
支持 XML, JSON, YAML, properties四种格式的配置
官方的配置说明: [url]http://logging.apache.org/log4j/2.x/manual/layouts.html[/url]
我在这里只以xml格式为例记录一些平时不太注意的地方

1.properties的使用


<properties>
<property name="LOG_HOME">D:/logs</property>
<property name="APP_NAME">MyApp</property>
<property name="isThreadContextMapInheritable">true</property>
</properties>

<RollingFile name="appAppender" fileName="${LOG_HOME}/${APP_NAME}.log" bufferSize="1024" immediateFlush="false"
filePattern="${LOG_HOME}/${APP_NAME}-%d{MM-dd-yyyy}-%i.log">
<PatternLayout charset="UTF-8" pattern="%d{yy-MM-dd HH:mm:ss} %p [%.8t] %c{1.}.%M(%L): %m%n" />
<Policies>
<TimeBasedTriggeringPolicy interval="1" modulate="true" />
</Policies>
<DefaultRolloverStrategy max="30" />
<Filters>
<ThresholdFilter level="info" onMatch="ACCEPT" onMismatch="DENY" />
</Filters>
</RollingFile>



2.将xml分成多个
比将logger和appender分成另两个文件

<?xml version="1.0" encoding="UTF-8"?>
<Configuration xmlns:xi="http://www.w3.org/2001/XInclude" status="WARN">
<properties>
<property name="LOG_HOME">D:/logs</property>
<property name="APP_NAME">MyApp</property>
<property name="isThreadContextMapInheritable">true</property>
</properties>

<xi:include href="log4j2-logger.xml" />
<xi:include href="log4j2-appender.xml" />

</Configuration>


3.按日志级别显示不同颜色的日志(需要ANSI console支持,否则会出现奇怪的字符)
eclipse 用户可以在Eclipse Marketplace中搜索安装
然后将appender中的PatternLayout 修改

<PatternLayout pattern="%highlight{%d{HH:mm:ss.SSS} [%.8t] %c.%M() - %msg%n}{FATAL=Bright Magenta, ERROR=bright red, WARN=yellow, INFO=black, DEBUG=green}" />




4.ThreadContext

日志太多特别是并发的情况下,不知道哪条日志是哪个用户的怎么办,ok,使用ThreadContext
(ThreadContext 可以将用户id等数据放入map或堆栈中,--推荐使用map方式)

可以把用户id,sessionid等放进ThreadContext中


ThreadContext.put("user", userID);
ThreadContext.put("sessionid", sessionID);


然后在PatternLayout中加入 %X{user} %X{sessionid} 将其输出在日志当中
[color=red]
注意:使用ThreadContext需要把isThreadContextMapInheritable设成True
[/color]

原创:[url]http://yxjajl.iteye.com/blog/2321807[/url]
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值