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則在左側補充空格