“Log4j 的 layout 配置”的版本间的差异

来自姬鸿昌的知识库
跳到导航 跳到搜索
(建立内容为“https://www.bilibili.com/video/BV1iJ411H74S?p=14”的新页面)
 
第1行: 第1行:
 
https://www.bilibili.com/video/BV1iJ411H74S?p=14
 
https://www.bilibili.com/video/BV1iJ411H74S?p=14
 +
{| class="wikitable"
 +
!格式化器类型
 +
!作用
 +
|-
 +
|HTMLLayout
 +
|格式化日志输出为 HTML 表格形式
 +
|-
 +
|SimpleLayout
 +
|简单的日志输出格式化,打印的日志格式为(info - message)
 +
|-
 +
|PatternLayout
 +
|最强大的格式化器,可以根据自定义格式输出日志,如果没有指定转换格式,
 +
就使用默认的转换格式
 +
|}
 +
 +
 +
 +
 +
 +
=== Layout 的格式 ===
 +
在 log4j.properties 配置文件中,我们定义了日志输出级别与输出端,在输出端中分别配置日志的输出格式。
 +
 +
<nowiki>*</nowiki>log4j 采用类似 C 语言的 printf 函数的打印格式格式化日志信息,具体的占位符及其含义如下:
 +
{| class="wikitable"
 +
|%m
 +
|输出代码中指定的日志信息
 +
|-
 +
|%p
 +
|输出优先级,即 DEBUG、INFO 等
 +
|-
 +
|%n
 +
|换行符(Windows 平台的换行符为“\r\n”,Unix 平台为 “\n”)
 +
|-
 +
|%r
 +
|输出自应用启动到输出该 log 信息的毫秒数
 +
|-
 +
|%c
 +
|输出打印语句所属的类的全名
 +
|-
 +
|%t
 +
|输出产生该日志的线程全名
 +
|-
 +
|%d
 +
|输出服务器当前时间,默认为 ISO8601,也可以指定格式,如:%d{yyyy年MM月dd日 HH:mm:ss}
 +
|-
 +
|%l
 +
|输出日志事件发生的位置,包括类名、线程、及在代码中的行数。如:Test.main(Test.java:10)
 +
|-
 +
|%F
 +
|输出日志消息产生时所在的文件名称
 +
|-
 +
|%L
 +
|输出代码中的行号
 +
|-
 +
|%%
 +
|输出一个“%”字符
 +
|}

2023年2月24日 (五) 08:03的版本

https://www.bilibili.com/video/BV1iJ411H74S?p=14

格式化器类型 作用
HTMLLayout 格式化日志输出为 HTML 表格形式
SimpleLayout 简单的日志输出格式化,打印的日志格式为(info - message)
PatternLayout 最强大的格式化器,可以根据自定义格式输出日志,如果没有指定转换格式,

就使用默认的转换格式



Layout 的格式

在 log4j.properties 配置文件中,我们定义了日志输出级别与输出端,在输出端中分别配置日志的输出格式。

*log4j 采用类似 C 语言的 printf 函数的打印格式格式化日志信息,具体的占位符及其含义如下:

%m 输出代码中指定的日志信息
%p 输出优先级,即 DEBUG、INFO 等
%n 换行符(Windows 平台的换行符为“\r\n”,Unix 平台为 “\n”)
%r 输出自应用启动到输出该 log 信息的毫秒数
%c 输出打印语句所属的类的全名
%t 输出产生该日志的线程全名
%d 输出服务器当前时间,默认为 ISO8601,也可以指定格式,如:%d{yyyy年MM月dd日 HH:mm:ss}
%l 输出日志事件发生的位置,包括类名、线程、及在代码中的行数。如:Test.main(Test.java:10)
%F 输出日志消息产生时所在的文件名称
%L 输出代码中的行号
%% 输出一个“%”字符