log4j的配置ConversionPattern詳細(xì)講解

小億
162
2023-12-20 15:40:33

在log4j的配置文件中,ConversionPattern是用來(lái)定義日志輸出的格式的屬性。它主要用于定義日志消息的布局,包括日志級(jí)別、時(shí)間、線程、類名、方法名、日志信息等內(nèi)容。

ConversionPattern的格式由一個(gè)或多個(gè)轉(zhuǎn)換符組成,每個(gè)轉(zhuǎn)換符都以%開(kāi)頭,后面跟著一個(gè)或多個(gè)格式化選項(xiàng)。下面是一些常用的轉(zhuǎn)換符及其對(duì)應(yīng)的格式化選項(xiàng):

  • %m:日志信息的占位符。通常用于輸出日志的內(nèi)容。
  • %p:日志級(jí)別的占位符。通常用于輸出日志的級(jí)別,如DEBUG、INFO、WARN、ERROR等。
  • %r:相對(duì)時(shí)間的占位符。表示自應(yīng)用程序啟動(dòng)以來(lái),產(chǎn)生日志事件的時(shí)間(以毫秒為單位)。
  • %c:類名的占位符。通常用于輸出日志的類名。
  • %t:線程名的占位符。通常用于輸出產(chǎn)生日志事件的線程名。
  • %n:換行符的占位符。用于換行輸出。
  • %d:日期和時(shí)間的占位符。通常用于輸出日志時(shí)間,可以使用ISO8601的日期時(shí)間格式,如%d{yyyy-MM-dd HH:mm:ss,SSS}。

除了上述常用的轉(zhuǎn)換符,還可以使用一些修飾符來(lái)控制輸出格式,如:

  • %-5p:輸出日志級(jí)別,并占用5個(gè)字符的寬度,左對(duì)齊。
  • %20.30c:輸出類名,并占用20個(gè)字符的寬度,右對(duì)齊,如果超過(guò)30個(gè)字符則截取。
  • %20.30m:輸出日志信息,并占用20個(gè)字符的寬度,右對(duì)齊,如果超過(guò)30個(gè)字符則截取。

通過(guò)使用不同的轉(zhuǎn)換符和修飾符,可以靈活地定義日志輸出的格式。例如,可以使用如下的ConversionPattern:

log4j.appender.console.layout.ConversionPattern=%d [%t] %-5p %c{1} - %m%n

上述配置將按照如下格式輸出日志:

2019-01-01 10:00:00,000 [main] INFO  ExampleClass - This is an example log message

其中,%d表示輸出日期和時(shí)間,[%t]表示輸出線程名,%-5p表示輸出日志級(jí)別,%c{1}表示輸出類名的最后一個(gè)單詞,%m表示輸出日志信息,%n表示換行符。

總之,ConversionPattern是用來(lái)定義日志輸出格式的重要屬性,通過(guò)使用不同的轉(zhuǎn)換符和修飾符,可以靈活地控制日志的輸出內(nèi)容和布局。

1