log4j Layout详解

log4j中Layout主要用于数据的格式化,常见的有以下3种:

HTMLLayout

格式化日志输出为HTML表格形式,一般用的比较少,html格式如下:

<table cellspacing="0" cellpadding="4" border="1" bordercolor="#224466" width="100%">
    <tr>
        <th>Time</th>
        <th>Thread</th>
        <th>Level</th>
        <th>Category</th>
        <th>Message</th>
    </tr>
    <tr>
        <td>0</td>
        <td title="main thread">main</td>
        <td title="Level">INFO</td>
        <td title="com.open1111.Test category">com.Test</td>
        <td title="Message">普通Info信息</td>
    </tr>
    <tr>
        <td>2</td>
        <td title="main thread">main</td>
        <td title="Level"><font color="#993300"><strong>FATAL</strong></font></td>
        <td title="com.open1111.Test category">com.Test</td>
        <td title="Message">严重错误fatal信息</td>
    </tr>
    <tr>
        <td>3</td>
        <td title="main thread">main</td>
        <td title="Level"><font color="#993300"><strong>ERROR</strong></font></td>
        <td title="com.open1111.Test category">com.Test</td>
        <td title="Message">报错信息</td>
    </tr>
    <tr>
        <td bgcolor="#993300" style="color:White; font-size : xx-small;" colspan="6">java.lang.IllegalArgumentException: 非法参数
<br>&nbsp;&nbsp;&nbsp;&nbsp; at com.Test.main(Test.java:17)
        </td>
    </tr>
</table>

SimpleLayout 

简单的日志输出格式化,打印的日志格式为(info - message),格式如下:

log.debug("hello 51gjie");
log.info("hello 51gjie");

//输出
DEBUG - hellow 51gjie
INFO - hellow 51gjie

PatternLayout 

最强大的格式化期,可以根据自定义格式输出日志,如果没有指定转换格式,就是用默认的转换格式

1. %c %c{数字} 输出日志器的名称

日志器名称为:com.linxingyang.Test1

%c | %c{1} | %c{2} | %c{3} | %c{4}分别输出com.linxingyang.Test1 | Test1 | linxingyang.Test1 | com.linxingyang.Test1 | com.linxingyang.Test1

2. %C %C{数字} 输出调用者的名称

3. %d 输出打印日志的日期时间

常用的格式有 %d{DATE}, %d{ABSOLUTE}, %d{HH:mm:ss,SSS}, %d{ddMMyyyy HH:mm:ss,SSS}

4. %n - 换行   

5. %m - 日志内容      

6. %p - 日志级别(FATAL,   ERROR,   WARN,   INFO,   DEBUG   or   custom)       

7. %r - 程序启动到现在的毫秒数      

8. %t - 当前线程名      

9. %l - 同 %F%L%C%M   

10. %F - java源文件名   

11. %L - java源码行数   

12. %C - java类名,%C{1} 输出最后一个元素   

13. %M-java方法名 

实例

log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=[%d{HH\:mm\:ss\:SSS}][%p] (%c\:%L) - %m%n 

输出:
输出格式为:[00:10:59:232][INFO] (com.web.action:35) - 服务器启动

版权声明:本文为JAVASCHOOL原创文章,未经本站允许不得转载。