使用Log4j來記錄日誌-PatternLayout和格式修飾符

1.PatternLayout

使用log4j總是被他的PatternLayout給嚇傻了,以前總是拿着一個可以用的配置到處搬而不太懂什麼意思~給大家整理下各個字符表達的什麼意思。


官方API地址(看起來也比較簡單易懂):

http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/PatternLayout.html



1.1 %m和%n

%m用於輸出應用指定的輸出內容,%n是一個換行符。 


如上所示,log4j輸出了程序的info內容,並且進行了換行


1.2 %d

用於打印日誌記錄的時間。可以省去括號裏面的內容。可以按照給定的格式輸出時間


格式和SimpleDateFormat一致,但是官方API說SimpleDateFormat是很低效的,建議使用Log4j自己的日期格式器,使用%d{ABSOLUTE}、%d{DATE}或%d{ISO8601}(默認不寫就是這個ISO8601)


我的理解就是直接%d就好了。

1.3 %p

用於輸入日誌打印的優先級[ERROR、WARN、INFO、DEBUG]


1.4 %F

用於輸出調用日誌記錄的文件的名稱。


官方api提醒說獲取這個文件位置的信息是很慢的,應該儘量避免使用。


1.5 %c和%C(不太清楚有什麼區別)

我自己也不太清楚,就只能看圖說話了,感覺用c和C效果是一樣的。作用是打印了類的路徑。覺得可以替代上面的%F

後面可以跟個花括號進行截取


1.6 %L

用於輸出文件的哪一行記錄的這個日誌。


上圖可以看到,是UserController.java的第28行記錄了這個日誌。官方api也提醒說這個方法會很慢。


其它的以後再補充


2.格式修飾符

2.1 %20p

如果字符串長度少於20個,則在左側進行空格填充,保證右側對齊(超過20個就對不齊了)。這裏的p可以換成其它的字符


2.2 %-20p

作用同上,但是空格填充在右側、


2.3 %.3p

如果字符串長度超過3,則對字符串進行截取。從左側開始截取,不知道怎樣才能從右側開始截取。



2.4 %20.30c

常見用法:如果字符串長度超過30則進行截取,如果低於20則在左側補充空格

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章