`

Log4j输出格式控制--log4j的PatternLayout参数含义

 
阅读更多
做项目被log4j的输出格式化参数搞烦了,索性把API的相关部分大致翻译一下,原文参见http://logging.apache.org/log4j/docs/api/org/apache/log4j/PatternLayout.html


参数 说明 例子
%c
列出logger名字空间的全称,如果加上{<层数>}表示列出从最内层算起的指定层数的名字空间
log4j配置文件参数举例
输出显示媒介
假设当前logger名字空间是"a.b.c"
%c a.b.c
%c{2} b.c
%20c (若名字空间长度小于20,则左边用空格填充)
%-20c (若名字空间长度小于20,则右边用空格填充)
%.30c (若名字空间长度超过30,截去多余字符)
%20.30c (若名字空间长度小于20,则左边用空格填充;若名字空间长度超过30,截去多余字符)
%-20.30c (若名字空间长度小于20,则右边用空格填充;若名字空间长度超过30,截去多余字符)
%C
列出调用logger的类的全名(包含包路径) 假设当前类是"org.apache.xyz.SomeClass"
%C org.apache.xyz.SomeClass
%C{1} SomeClass
%d
显示日志记录时间,{<日期格式>}使用ISO8601定义的日期格式 %d{yyyy/MM/dd HH:mm:ss,SSS} 2005/10/12 22:23:30,117
%d{ABSOLUTE} 22:23:30,117
%d{DATE} 12 Oct 2005 22:23:30,117
%d{ISO8601} 2005-10-12 22:23:30,117
%F
显示调用logger的源文件名 %F MyClass.java
%l
输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数 %l MyClass.main(MyClass.java:129)
%L
显示调用logger的代码行 %L 129
%m
显示输出消息 %m This is a message for debug.
%M
显示调用logger的方法名 %M main
%n
当前平台下的换行符 %n Windows平台下表示rn
UNIX平台下表示n
%p
显示该条日志的优先级 %p INFO
%r
显示从程序启动时到记录该条日志时已经经过的毫秒数 %r 1215
%t
输出产生该日志事件的线程名 %t MyClass
%x
按NDC(Nested Diagnostic Context,线程堆栈)顺序输出日志 假设某程序调用顺序是MyApp调用com.foo.Bar
%c %x - %m%n MyApp - Call com.foo.Bar.
com.foo.Bar - Log in Bar
MyApp - Return to MyApp.
%X
按MDC(Mapped Diagnostic Context,线程映射表)输出日志。通常用于多个客户端连接同一台服务器,方便服务器区分是那个客户端访问留下来的日志。 %X{5} (记录代号为5的客户端的日志)
%%
显示一个百分号 %% %


列了这么多,举几个实际的例子吧,比如log4j.properties的内容为:

#log4j config
log4j.rootLogger=DEBUG,OUTPUT

log4j.appender.OUTPUT.layout=org.apache.log4j.PatternLayout
log4j.appender.OUTPUT.layout.ConversionPattern=%d{DATE} %-4r [%t] %-5p %c %x - %m%n
……


那么一个可能的输出是:

12 Oct 2005 22:23:30,117 0 [main] INFO MyApp - Entering application.
……
12 Oct 2005 22:23:30,162 45 [main] INFO MyApp - Exiting application.
分享到:
评论

相关推荐

    log4j-api-2.17.1.jar和log4j-core-2.17.1.jar

    例如,`org.apache.logging.log4j.core.appender.ConsoleAppender`用于将日志输出到控制台,而`org.apache.logging.log4j.core.layout.PatternLayout`则可以按照自定义的模式格式化日志信息。 Log4j2的亮点之一是其...

    logging-log4j2-log4j-2.15.0-rc2.zip

    Log4j 2是Log4j的下一代版本,它引入了大量新特性,包括异步日志记录、可插拔的日志格式化器、动态配置以及丰富的API。相较于Log4j 1.x,Log4j 2不仅在性能上有所增强,而且在用户体验和安全性上都有显著改进。 2....

    apache-log4j-2.17.0-bin.tar.gz

    2. **日志布局**:Log4j提供了多种布局模式,如PatternLayout、SimpleLayout和XMLLayout等,这些布局决定了日志信息如何被格式化。 3. **日志输出目的地**:日志信息可以被输出到控制台、文件、数据库、网络甚至是...

    apache-log4j-2.0-rc1-src

    2. **配置文件**:Log4j使用配置文件(如log4j2.xml或log4j2.json)来定义日志输出的位置、格式和级别。这些配置可以动态更新,无需重启应用。 3. **Appenders**:Appenders是Log4j用来输出日志信息的组件,例如...

    apache-log4j-2.8.2-bin.tar

    3. **Layouts与Patterns**:Log4j 允许自定义日志输出格式,如使用PatternLayout来定制输出模式,这使得日志更容易阅读和分析。在2.8.2版本中,可能会有新的布局模式或者对已有模式的增强。 4. **Appenders**:...

    log4j-1.2.17的jar包以及依赖包,还有一份log4j的配置文件,输出到控制台和文件夹两种配置

    log4j.appender.Console.layout=org.apache.log4j.PatternLayout log4j.appender.Console.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p %c{1}:%L - %m%n # 文件Appender log4j.appender.File=org.apache...

    apache-log4j-2.15.0-bin.tar.gz

    1. **配置灵活性**:Log4j 2提供了XML、JSON、YAML和Groovy等多种配置格式,允许用户根据项目需求定制日志输出。 2. **异步日志记录**:Log4j 2支持异步日志记录,通过使用LMAX Disruptor库,可以实现高吞吐量且无锁...

    log4j-slf4j-impl.zip

    3. **强大的布局模式**:Log4j提供了多种布局模式,如PatternLayout,可以定制日志输出的格式,方便日志分析。 4. **插件体系**:Log4j拥有强大的插件系统,如Appender和Layout,可以根据需要扩展功能,如发送日志...

    log4j-2.11.2的jar包和日志门面slf4j的jar包

    通常需要一个配置文件(如`log4j2.xml`或`log4j2.json`)来定义日志行为,包括日志输出级别(如DEBUG、INFO、WARN、ERROR)、输出目的地(控制台、文件、数据库等)、以及布局格式(如PatternLayout、XMLLayout等)...

    log4j-core-2.5

    配置Log4j-core-2.5通常涉及创建一个`log4j2.xml`或`log4j2.json`文件,指定日志级别、输出目的地(如控制台、文件、数据库等)、布局(如PatternLayout、XMLLayout等)以及过滤规则。例如,以下是一个简单的XML配置...

    log4j-1.2.15-apidocs.rar

    Log4j是一款开源的日志记录框架,最初由Apache软件基金会开发,其设计目标是提供一个灵活且可扩展的日志系统,使开发者能够方便地控制日志信息的输出级别,以及输出格式和目的地。Log4j 1.2.15是1.x系列的一个稳定...

    apache-log4j-2.0-rc1.rar

    5. **PatternLayout**:Log4j 2.0的PatternLayout提供了丰富的格式化选项,允许开发者自定义日志输出的格式,包括日期、线程名、级别、类名、MDC(Mapped Diagnostic Context)等信息。 6. **Error Handling**:Log...

    spring-boot-starter-log4j2

    2. 配置Log4j2:Spring Boot默认使用`src/main/resources/log4j2.xml`或`log4j2.json`作为Log4j2的配置文件。你可以根据需求自定义日志级别、输出格式、输出位置等。 四、Log4j2配置详解 1. 日志级别:Log4j2支持...

    log4j全套功能--绝对正点

    - `log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout`: 使用模式布局来格式化日志信息。 - `log4j.appender.CONSOLE.layout.ConversionPattern=[framework]%d-%c-%-4r[%t]%-5p%c%x-%m%n`: 定义输出的...

    log4j各版本jar包

    在配置文件(通常是log4j.properties或log4j.xml)中,我们可以设置日志级别(DEBUG、INFO、WARN、ERROR等)、输出目的地(如ConsoleAppender、FileAppender等)、以及自定义的布局格式(如PatternLayout)等。...

    log4j优化文件 logging-log4j2-log4j-2.15.0-rc1.tar

    3. **插件体系**:Log4j2通过插件系统支持各种日志输出格式(如Console、File、SMTP等)和过滤器,方便扩展和定制。 二、2.15.0-rc1版本的优化重点 1. **安全更新**:此版本修复了Apache Log4j中的严重安全漏洞...

    apache-log4j-2.3-bin和commons-logging-1.2

    4. **Layouts与Patterns**:提供多种布局和模式,如PatternLayout,可以自定义日志输出格式。 5. **过滤器**:允许基于特定条件过滤日志记录,提高日志分析效率。 6. **Error Handling**:对错误处理进行了改进,...

    javaweb配置Log4j发送日志邮件------全面

    log4j.appender.SMTP.layout=org.apache.log4j.PatternLayout log4j.appender.SMTP.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n ``` 这里需要替换为实际的电子邮件地址、SMTP服务器、用户名和密码。...

    apache-log4j-2.3 jar包

    Log4j 2.3 支持PatternLayout、JSONLayout、HTMLLayout等多种布局,它们分别用于生成文本、JSON和HTML格式的日志输出。 5. **Filter**:过滤器允许开发者根据预定义的条件筛选日志事件,决定哪些事件应该被记录,...

    log4j-控制指定类,包的日志级别:log4j-demo.zip

    Log4j是Apache提供的一款广泛使用的日志框架,它提供了丰富的功能,包括控制日志级别、定制日志格式、支持多种输出方式等。本示例将详细介绍如何使用Log4j来控制指定类或包的日志级别。 首先,我们来理解日志级别的...

Global site tag (gtag.js) - Google Analytics