log4j有三个主要的组件,分别是:
- Logger(记录器):负责按照设定的优先级过滤日志信息,然后转发到存放器
- Appender(存放器):负责接收并处理记录器转发来的日志信息,通常的处理是输出到屏幕或者存储到磁盘文件
- Layout(布局器):负责格式化日志信息
上述三者之间的关系:
一个Logger可以挂接多个Appender(日志信息同时转发到多个设备)
一个Appender指定一个Layout进行格式化操作
一、定义配置文件log4j.properties
- log4j.记录器名称=[ 级别 ] , 存放器名称1, 存放器名称2, …
级别优先级由高到低依次是:OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL
log4j建议只使用四个级别,优先级从高到低分别是:ERROR、WARN、INFO、DEBUG
只有优先级高于或等于设定级别的日志信息被转发
log4j.rootLogger是所有记录器的父对象(原名rootCategory已废弃),可用于设定所有记录器的缺省优先级
记录器可以继承,如:log4j.myLogger.childLogger=,file
记录器按名字获得,第一次访问时自动创建(总是存在)
如果约定每个类都只向其同名记录器输出日志,则在配置文件中可以针对每一个特定类进行日志配置
- log4j.appender.存放器名称=存放器类名
目前,log4j实现的存放器类有以下几种:
org.apache.log4j.ConsoleAppender(控制台)
org.apache.log4j.FileAppender(文件)
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
- log4j.appender.存放器名称.layout=布局器类名
目前,log4j实现的布局器类有以下几种:
org.apache.log4j.PatternLayout(log4j的标准布局器,可以灵活地指定布局模式)
org.apache.log4j.HTMLLayout(以HTML表格形式布局)
org.apache.log4j.SimpleLayout(包含级别和日志信息的简单字符串)
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
- 设定布局器选项(主要是设定转换格式)
log4j.appender.存放器名称.layout.选项名=值
通常采用log4j的标准布局器:
log4j.appender.存放器名称.layout=org.apache.log4j.PatternLayout
log4j.appender.存放器名称.layout.ConversionPattern=格式化参数
log4j采用类似C语言中printf函数的格式化参数格式化日志信息,参数如下:
%m 输出代码中指定的信息
%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
%r 输出自布局器构造到该时间点所经过的毫秒数
%c 输出所属的类目,通常就是所在类的全名
%t 输出产生该日志事件的线程名
%n 输出一个回车换行符,Windows平台为“\r\n”,Unix平台为“\n”
%d 输出该时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式。如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:08 十二月 03 12:04:52,531
%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。如:Testlog4.main(TestLog4.java:10)
%F 输出文件名
%L 输出行号
二、在代码中调用log4j
- 将log4j的jar包(log4j-1.2.15.jar)导入到工程中。
- 写配置文件log4j.properties,放在src目录下,系统运行时自动拷贝到bin目录下。
import org.apache.log4j.Logger;
...
private static final Logger log = Logger.getLogger(类名.class);
...
log.debug( Object message );
log.info( Object message );
log.warn( Object message );
log.error( Object message );
三、log4j.properties的例子
# Set root logger priority to INFO and its only appender to CONSOLE.
log4j.rootLogger=INFO, CONSOLE
log4j.rootLogger=INFO, CONSOLE, LOGFILE
# Set the enterprise logger category to FATAL and its only appender to CONSOLE.
log4j.logger.org.apache.axis.enterprise=FATAL, CONSOLE
# CONSOLE is set to be a ConsoleAppender using a PatternLayout.
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender
log4j.appender.CONSOLE.Threshold=INFO
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout
# Pattern to output the caller's file name and line number.
log4j.appender.CONSOLE.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
# LOGFILE is set to be a File appender using a PatternLayout.
log4j.appender.LOGFILE=org.apache.log4j.FileAppender
log4j.appender.LOGFILE.File=axis.log
log4j.appender.LOGFILE.Append=true
log4j.appender.LOGFILE.Threshold=INFO
log4j.appender.LOGFILE.layout=org.apache.log4j.PatternLayout
log4j.appender.LOGFILE.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
四、常见故障
- log4j:WARN Please initialize the log4j system properly.
解决办法:
【eclipse环境】将文件log4j.properties拷贝到src目录下,运行时会自动拷贝到bin目录下。之前可能需要Refresh。
分享到:
相关推荐
总的来说,正确配置log4j对于WebSphere V5环境下的应用监控和问题排查至关重要。同时,结合iBATIS的SQL日志输出,可以帮助开发人员更有效地管理和维护其应用程序。在实际操作中,根据具体需求调整log4j的配置,可以...
### log4j实用配置扩展 #### 一、log4j简介与重要性 Log4j是一种广泛使用的开源日志框架,由Apache软件基金会维护。...对于任何涉及大量数据处理或复杂逻辑的应用程序而言,正确配置并使用log4j都是非常重要的。
Log4j 是一个广泛使用的Java日志记录框架,它提供了灵活的日志配置和多种日志输出格式,使得开发者能够方便地...正确配置 Log4j 不仅有助于调试和问题排查,还能帮助监控应用程序的运行状态,从而提高整体的软件质量。
总的来说,理解并正确配置Log4j对于任何Java开发者来说都是基本技能,这不仅可以提高代码的可维护性,也有助于优化应用的性能和资源使用。正确使用Log4j可以让你在遇到问题时迅速定位,从而提高开发效率。
Log4j 是一个广泛使用的...正确配置Log4j.properties文件能够帮助开发者更好地管理和监控应用程序的运行状态,通过调整日志级别和输出方式,可以在开发、测试和生产环境中获得合适的日志信息,从而提升问题排查效率。
Log4j是一款广泛使用的日志...在实际项目中,确保正确配置Log4j是至关重要的,因为它可以帮助我们跟踪程序状态、定位错误,以及在必要时提供审计日志。对于大型分布式系统,良好的日志管理可以显著提高故障排查效率。
正确理解和使用`log4j.properties`文件,将使日志管理变得更加高效和便捷。同时,不断学习和探索log4j的高级特性,如异步日志、MDC(Mapped Diagnostic Context)等,可以进一步提升日志系统的实用性和可维护性。
正确配置`log4j.properties`对于应用程序的日志管理和调试至关重要。 #### 二、日志级别 Log4j支持以下几种级别的日志输出:OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL。这些级别按照从高到低的顺序排列,其中OFF...
Java程序log4j配置详解 log4j是一个流行的Java日志记录工具,提供了灵活的日志记录和管理功能。在Java程序中,log4j配置正确是非常重要的,本文将详细介绍log4...通过正确地配置log4j,可以实现高效的日志记录和管理。
Log4J是一个广泛使用的Java日志框架,它的配置文件,如`log4j.properties`,是用来定义日志记录的行为和格式。...正确配置Log4J可以帮助开发者更好地理解和跟踪程序的运行状态,从而优化代码质量和用户体验。
在IT行业中,日志记录是调试和监控应用程序的关键部分,而Log4j是Java平台广泛使用的日志框架。本文将详细讨论如何解决Log4j日志文件出现的乱码...在实际开发中,正确配置Log4j的字符编码是一项基础但至关重要的任务。
### Log4J 全能配置文件详解 #### 一、概述 Log4J是一款非常流行的Java日志框架,被广泛应用于各种规模的应用程序中。它提供了灵活的日志记录机制,可以将日志输出到不同的目的地,如控制台、文件、数据库等,并且...
在Java Web开发中,Tomcat是一个广泛使用的...总之,通过正确配置Log4j,我们可以使Tomcat的日志管理更加高效,确保在不影响系统性能的情况下获取所需的信息。记得定期清理旧的日志文件,以防止硬盘空间被过度占用。
### Log4j中配置日志文件相对路径方法详解 #### 概述 在软件开发过程中,日志记录是一项重要的功能,它有助于开发者调试程序、监控应用程序的运行状态以及追踪问题。`Log4j`作为一款优秀的日志管理工具,被广泛应用...
2. **配置Log4j2**:Tomcat 9允许你在`$CATALINA_BASE/conf`目录下创建`log4j2.xml`文件来定制日志配置。`tomcat9-log4j2.xml`应该包含了如下内容: ```xml [%t] %-5level %logger{36} - %msg%n"/> ...
本文将详细探讨Log4j的使用,主要关注1.2.17版本的jar包以及配置文件`log4j.properties`。 ### 1. Log4j简介 Log4j是一个开源的日志组件,支持多种输出格式,如控制台、文件、数据库等。它的核心概念包括Logger、...
Log4j是一个广泛使用的Java日志记录框架,它允许开发者在应用程序中轻松地记录各种级别的日志信息,如DEBUG、INFO、WARN、ERROR等。在2021年底,一个重大的安全漏洞(CVE-2021-44228)被发现在Log4j2的早期版本中,...
这一步是将 Log4j 库集成到项目中的第一步,确保项目可以正确引用 Log4j 的类。 ##### 2. 创建初始化 Servlet 接下来,创建一个用于初始化 Log4j 的 Servlet。这个 Servlet 的作用是在应用启动时读取配置文件并...
例如,在Spring框架的应用中,如果没有正确配置log4j,就可能出现“log4j:WARN No appenders could be found for logger (org.springframework.context.support.ClassPathXmlApplicationContext)”这类警告信息。...