温馨提示×

log4j的配置ConversionPattern详细讲解

小亿
159
2023-12-20 15:40:33
栏目: 编程语言

在log4j的配置文件中,ConversionPattern是用来定义日志输出的格式的属性。它主要用于定义日志消息的布局,包括日志级别、时间、线程、类名、方法名、日志信息等内容。

ConversionPattern的格式由一个或多个转换符组成,每个转换符都以%开头,后面跟着一个或多个格式化选项。下面是一些常用的转换符及其对应的格式化选项:

  • %m:日志信息的占位符。通常用于输出日志的内容。
  • %p:日志级别的占位符。通常用于输出日志的级别,如DEBUG、INFO、WARN、ERROR等。
  • %r:相对时间的占位符。表示自应用程序启动以来,产生日志事件的时间(以毫秒为单位)。
  • %c:类名的占位符。通常用于输出日志的类名。
  • %t:线程名的占位符。通常用于输出产生日志事件的线程名。
  • %n:换行符的占位符。用于换行输出。
  • %d:日期和时间的占位符。通常用于输出日志时间,可以使用ISO8601的日期时间格式,如%d{yyyy-MM-dd HH:mm:ss,SSS}。

除了上述常用的转换符,还可以使用一些修饰符来控制输出格式,如:

  • %-5p:输出日志级别,并占用5个字符的宽度,左对齐。
  • %20.30c:输出类名,并占用20个字符的宽度,右对齐,如果超过30个字符则截取。
  • %20.30m:输出日志信息,并占用20个字符的宽度,右对齐,如果超过30个字符则截取。

通过使用不同的转换符和修饰符,可以灵活地定义日志输出的格式。例如,可以使用如下的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表示输出日期和时间,[%t]表示输出线程名,%-5p表示输出日志级别,%c{1}表示输出类名的最后一个单词,%m表示输出日志信息,%n表示换行符。

总之,ConversionPattern是用来定义日志输出格式的重要属性,通过使用不同的转换符和修饰符,可以灵活地控制日志的输出内容和布局。

1