日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Logger PatternLayout 格式

發布時間:2025/3/21 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Logger PatternLayout 格式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

如果您希望基于某種模式生成特定格式的日志信息,可使用?org.apache.Log4j.PatternLayout?格式化您的日志信息。

PatternLayout?繼承自抽象類?org.apache.Log4j.Layout,覆蓋了其?format()?方法,通過提供的模式,來格式化日志信息。

PatternLayout?是一個簡單的?Layout?對象,提供了如下屬性,該屬性可通過配置文件更改:

序號屬性 & 描述
1conversionPattern

設置轉換模式,默認為 %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 對應的值。
%百分號, %% 會輸出一個 %。

格式修飾符

缺省情況下,信息保持原樣輸出。但是借助格式修飾符的幫助,就可調整最小列寬、最大列寬以及對齊。

下面的表格涵蓋了各種修飾符:

格式修飾符左對齊最小寬度最大寬度注釋
%20c20如果列名少于 20 個字符,左邊使用空格補齊。
%-20c20如果列名少于 20 個字符,右邊使用空格補齊。
%.30c不適用30如果列名長于 30 個字符,從開頭剪除。
%20.30c2030如果列名少于 20 個字符,左邊使用空格補齊,如果列名長于 30 個字符,從開頭剪除。
%-20.30c2030如果列名少于 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 message

from:?http://wiki.jikexueyuan.com/project/log4j/log4j-patternlayout.html?

總結

以上是生活随笔為你收集整理的Logger PatternLayout 格式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。