Logger PatternLayout 格式
生活随笔
收集整理的這篇文章主要介紹了
Logger PatternLayout 格式
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
如果您希望基于某種模式生成特定格式的日志信息,可使用?org.apache.Log4j.PatternLayout?格式化您的日志信息。
PatternLayout?繼承自抽象類?org.apache.Log4j.Layout,覆蓋了其?format()?方法,通過提供的模式,來格式化日志信息。
PatternLayout?是一個簡單的?Layout?對象,提供了如下屬性,該屬性可通過配置文件更改:
| 1 | conversionPattern 設置轉換模式,默認為 %r [%t] %p %c %x - %m%n。 |
模式轉換字符
下面的表格解釋了上面模式中用到的字符,以及所有定制模式時能用到的字符:
| c | 使用它為輸出的日志事件分類,比如對于分類 "a.b.c",模式 %c{2} 會輸出 "b.c" 。 |
| C | 使用它輸出發起記錄日志請求的類的全名。比如對于類 "org.apache.xyz.SomeClass",模式 %C{1} 會輸出 "SomeClass"。 |
| d | 使用它輸出記錄日志的日期,比如 %d{HH:mm:ss,SSS} 或 %d{dd MMM yyyy HH:mm:ss,SSS}。 |
| F | 在記錄日志時,使用它輸出文件名。 |
| l | 用它輸出生成日志的調用者的地域信息。 |
| L | 使用它輸出發起日志請求的行號。 |
| m | 使用它輸出和日志事件關聯的,由應用提供的信息。 |
| M | 使用它輸出發起日志請求的方法名。 |
| n | 輸出平臺相關的換行符。 |
| p | 輸出日志事件的優先級。 |
| r | 使用它輸出從構建布局到生成日志事件所花費的時間,以毫秒為單位。 |
| t | 輸出生成日志事件的線程名。 |
| x | 輸出和生成日志事件線程相關的 NDC (嵌套診斷上下文)。 |
| X | 該字符后跟 MDC 鍵,比如 X{clientIP} 會輸出保存在 MDC 中鍵 clientIP 對應的值。 |
| % | 百分號, %% 會輸出一個 %。 |
格式修飾符
缺省情況下,信息保持原樣輸出。但是借助格式修飾符的幫助,就可調整最小列寬、最大列寬以及對齊。
下面的表格涵蓋了各種修飾符:
| %20c | 否 | 20 | 無 | 如果列名少于 20 個字符,左邊使用空格補齊。 |
| %-20c | 是 | 20 | 無 | 如果列名少于 20 個字符,右邊使用空格補齊。 |
| %.30c | 不適用 | 無 | 30 | 如果列名長于 30 個字符,從開頭剪除。 |
| %20.30c | 否 | 20 | 30 | 如果列名少于 20 個字符,左邊使用空格補齊,如果列名長于 30 個字符,從開頭剪除。 |
| %-20.30c | 是 | 20 | 30 | 如果列名少于 20 個字符,右邊使用空格補齊,如果列名長于 30 個字符,從開頭剪除。 |
PatternLayout 示例
下面是為?PatternLayout?編寫的一個簡單配置:
# Define the root logger with appender file log = /usr/home/Log4j Log4j.rootLogger = DEBUG, FILE# Define the file appender Log4j.appender.FILE=org.apache.Log4j.FileAppender Log4j.appender.FILE.File=${log}/log.out# Define the layout for file appender Log4j.appender.FILE.layout=org.apache.Log4j.PatternLayout Log4j.appender.FILE.layout.ConversionPattern=%d{yyyy-MM-dd}-%t-%x-%-5p-%-10c:%m%n下面是生成日志信息的 Java 程序:
import org.apache.Log4j.Logger;import java.io.*; import java.sql.SQLException; import java.util.*;public class Log4jExample{/* Get actual class name to be printed on */static Logger log = Logger.getLogger(Log4jExample.class.getName());public static void main(String[] args)throws IOException,SQLException{log.debug("Hello this is an debug message");log.info("Hello this is an info message");} }編譯并運行上述程序,會在目錄?/usr/home/Log4j?下生成一個名為?log.out?的文件,該文件包含如下日志信息:
2010-03-23-main--DEBUG-Log4jExample:Hello this is an debug message 2010-03-23-main--INFO -Log4jExample:Hello this is an info messagefrom:?http://wiki.jikexueyuan.com/project/log4j/log4j-patternlayout.html?
總結
以上是生活随笔為你收集整理的Logger PatternLayout 格式的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring MVC 和 Spring
- 下一篇: Log4j输出格式控制--log4j的P