Log4J学习【二十九】常用的Layout之PatternLayout

首先来说说这个pattern,在pattern中,规定格式的总是一个字符,比如上面的r,t,p等,在某些情况下,这些字符可以带一些前缀或者后缀信息来规定额外的格式,这个我们待会再看,并且,所有的代表内容的字符,必须放在%之后,才有意义,比如%r[%t]和%r[t]就是完全不同的两个模式,第一个模式中,r和t都具有参数意义,而第二个模式中,t就只是一个输出值了,就不会被特定的内容所替换。
    下面简单来看看在PatternLayout中规定了哪些字符和格式:
    c:代表Logger的名称,比如cd.itcast;在c后面,可以使用{数字}来添加输出精度限制。比如:Logger.getLogger(“cd.itcast.log”),在%c的样式下,输出cd.itcast.log,假如样式为:%c{2},则输出itcast.log。即{}中的数字限制了从右向左取.的个数。

    C:代表输出这条Logger信息的所属类的全限定名。比如,在cd.itcast.log.LogTest中使用:Logger log=Logger.getLogger(“cd.itcast”); log.info();那么使用%C会输出cd.itcast.log.LogTest;这里注意不要把Logger的名字和Logger所属类弄混淆了。另外,在C后面,也可以使用{精度}来限制打印的内容。比如使用%C{2},那么就会打印出log.LogTest。规则和c一样。

    d:代表日志输出的时间。在d后面可以使用{format}来规定日期输出的样式。这个format完全采用SimpleDateFormat里面规定的样式格式化日期。如果没有自定义日期,则会使用标准的ISO8601输出样式。比如:
log4j.appender.stdout.layout.conversionPattern=%d
    输出:2013-03-15 13:56:23,046
    注意后面的046,代表的毫秒数。假如设定的格式为:
log4j.appender.stdout.layout.conversionPattern=%d{yyyy-MM-dd HH:mm:ss}
    则按照格式输出:2013-03-15 13:58:25
    另外,Log4J为了提升在使用SimpleDateFormat格式化时间的效率问题,他自己实现了几种高效率的时间格式化方式,我们可以通过使用%d{ABSOLUTE},%d{DATE}和%d{ISO8601}(默认的格式)来格式化。

    F:输出日志所在的文件名称。比如:
log4j.appender.stdout.layout.conversionPattern=%F
    则输出:LogTest.java

    l:输出日志所在的类【文件名】。比如:
log4j.appender.stdout.layout.conversionPattern=%l
    则输出:
cd.itcast.log4j.LogTest5.testSimpleLayout(LogTest5.java:115)
    这个输出结构很像在程序中报错所提示的错误信息那样。但是这个信息的输出非常耗费性能,一般情况下慎用。

    L:输出日志所在的代码行。比如:
log4j.appender.stdout.layout.conversionPattern=%L
    则输出115,因为这行输出是在java代码中的115行。这个用于定位代码还是非常有用的。

    m:输出日志内容。这个不用多说,就是我们日志的内容。
    M:输出日志所在的方法名称。
    n:没有特殊意义,就是代表换行,所以在前面所有的PatternLayout示例中,我们最后一个参数总是%n。
    p:该行日志的输出级别。
    r:从系统启动到输出该行日志的间隔时间(毫秒)
    t:输出该行日志的线程名称
    x:输出该行日志的NDC信息(这个后面介绍)
    X:输出该行日志的MDC信息(这个后面介绍)

    在这些格式化信息中,C,F,L,l这几个都是非常消耗性能的,所以一般情况下是不推荐使用的。要使用这些格式是非常简单的,你只需要按照你想要的内容,参照这个对比表,就能很容易的写出来。这些内容也不需要大家去强行记忆,所有相关符号的解释都在PatternLayout类里面写的非常清楚。需要的时候去查一下就行了。
    另外,在PatternLayout中还提供了一些用于格式化样式的参数,可以通过这些参数来控制信息的对齐方式,填充最小,最大长度。我们直接来看几个例子就知道了:
格式左对齐最小长度最大长度显示示例
[%c]不限不限[cd.itcast]
[%15c]15不限[      cd.itcast]
[%-15c]15不限[cd.itcast      ]
[%.8c]不限8[d.itcast]
[%5.8c]58[d.itcast]
[%-5.8]58[d.itcast]
    这些符号的使用方式都是非常简单的,看一下这个表,就很容易明白了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值