Log4j笔记 第六章 常用的Layout
SimpleLayout,仅包括消息等级和消息。
PatternLayout,使用c的print方法,修饰日志。常用的Layout。
HTMLLayout,将日志包装为HTML的格式。
XMLLayout,将日志包装为XML的格式。
EnhancedPatternLayout,扩展PatternLayout,具体参考 EnhancedPatternLayout.java。
第一节 PatternLayout
具体情况,参考PatternLayout.java源码。
1、转义符
PatternLayout使用%作为转移字符。
%% 表示字面意义上的“%”。
如果%后面的不是合法的转义字符,%还是表示字面意义上的“%”。(log4j会提示出错。)
2、换行
%n 换行符号(Window下是\r\n, Linux下是\n)
3、长度控制
D代表数字,Z代表被转义字符
格式意义例子
%DZ如果“%Z”对应的字符串不足“D”位时,前面补空格“ ”达到D位。%15m
%-DZ如果“%Z”对应的字符串不足“D”位时,后面补空格“ ”达到D位。%-15m
%.DZ如果“%Z”对应的字符串超过“D”位时,取后面的D位字符串。%.30m
%D.DZ%DZ和%.DZ的组合。%15.30m
%-D.DZ%-DZ和%.DZ的组合。%-15.30m
4、转义字符,LoggingEvent的信息
%c event.getLoggerName();
%C event.getLocationInformation().getClassName()
%d event.timeStamp ,默认采用ISO8601DateFormat("YYYY-mm-dd HH:mm:ss,SSS")
%d{ISO8601} "YYYY-mm-dd HH:mm:ss,SSS"
%d{ABSOLUTE}
%d{DATE}
%d{***} 用SimpleDateFormat,处理字符串的格式。
%F event.getLocationInformation().getFileName()
%l event.getLocationInformation().fullInfo
%L event.getLocationInformation().getLineNumber()
%m event.getRenderedMessage()
%M event.getLocationInformation().getMethodName()
%p event.getLevel().toString()
%r (Long.toString(event.timeStamp - LoggingEvent.getStartTime()))
%t event.getThreadName()
%x event.getNDC()
%X event.getProperties() (event.getProperties()是一个Map)
%X{key} event.getMDC(key) (如果:event.getMDC(key)不存在,则为key)