Log4j组件构成
Log4j由三个重要的组件构成:
1.日志信息的优先级(Logger)
2.日志信息的输出目的地(Appender)
3.日志信息的输出格式(Layout)。
概要:
日志信息的优先级从高到低有ERROR、WARN、 INFO、DEBUG,分别用来指定这条日志信息的重要程度;
日志信息的输出目的地指定了日志将打印到控制台还是文件中;
而输出格式则控制了日志信息的显示内容。
Log4j介绍
Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式,通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。log4j--log for java (java的日志) .
Log4j下载地址: http://logging.apache.org/log4j/2.x/download.html
Log4j配置文件的格式
Log4j支持两种配置文件格式:
1. XML格式的文件
2. properties格式的文件
也可以完全不使用配置文件,而是在代码中配置Log4j环境。但是,使用配置文件将使您的应用程序更加灵活。
Log4j定义配置文件
1.配置根Logger
其语法为:
log4j.rootLogger = [ level ] , appenderName, appenderName, …
参数说明:
level 是日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定义的级别。
Off: 最高等级,用于关闭所有日志记录
Fatal: 指出每个严重的错误事件将会导致应用程序的退出。
Error: 指出虽然发生错误事件,但仍然不影响系统的继续运行。
Warn: 表明会出现潜在的错误情形
Info: 一般用在粗粒度级别上,强调应用程序的运行全程
Debug: 一般和在粗粒度级别上,强调应用程序的运行全程。
All: 最低等级,用于打开所有日志记录。
Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG。通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。
appenderName就是指日志信息输出到哪个地方,可以同时指定多个输出目的地。
2.配置日志信息输出目的地Appender
其语法为:
log4j.appender.appenderName = fully.qualified.name.of.appender.class log4j.appender.appenderName.option1 = value1 ... log4j.appender.appenderName.option = valueN
Log4j提供的appender有以下几种:
org.apache.log4j.ConsoleAppender(控制台)
org.apache.log4j.FileAppender(文件)
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生新文件)
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
3.配置日志信息的格式
语法为:
log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class log4j.appender.appenderName.layout.option1 = value1 … log4j.appender.appenderName.layout.option = valueN
Log4j提供的layout有以下几种:
org.apache.log4j.HTMLLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
Log4J采用类似C语言中的printf函数的打印格式格式化日志信息,打印参数如下:
%m 输出代码中指定的消息
%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
%r 输出自应用启动到输出该log信息耗费的毫秒数
%c 输出所属的类目,通常就是所在类的全名
%t 输出产生该日志事件的线程名
%n 输出一个回车换行符,Windows平台为“rn”,Unix平台为“n”
%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921
%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java:10)
%x: 输出和当前线程相关联的NDC(嵌套诊断环境),尤其用到像java servlets这样的多客户多线程的应用中。
%%: 输出一个”%”字符 %F: 输出日志消息产生时所在的文件名称
%L: 输出代码中的行号
%m: 输出代码中指定的消息,产生的日志具体信息
%n: 输出一个回车换行符,Windows平台为”\r\n”,Unix平台为”\n”输出日志信息换行 可以在%与模式字符之间加上修饰符来控制其最小宽度、最大宽度、和文本的对齐方式。
如:
1) c:指定输出category的名称,最小的宽度是20,如果category的名称小于20的话,默认的情况下右对齐。
2)%-20c:指定输出category的名称,最小的宽度是20,如果category的名称小于20的话,”-”号指定左对齐。
3)%.30c:指定输出category的名称,最大的宽度是30,如果category的名称大于30的话,就会将左边多出的字符截掉,但小于30的话也不会有空格。
4) .30c:如果category的名称小于20就补空格,并且右对齐,如果其名称长于30字符,就从左边交远销出的字符截掉。
本文摘自:http://www.cnblogs.com/dennisit/archive/2013/01/01/2841603.html
相关推荐
- "Log4j手册.pdf":这份PDF文档可能是Log4j的手册或教程,可能包含更广泛的使用场景和最佳实践,也可能是对CHM文件的补充或不同版本的文档。 **知识点详解** 1. **Log4j简介**:Log4j是Apache软件基金会的一个...
在给定的压缩包中,包含两个核心文件:`log4j-1.2.15.jar` 和 `apache-log4j-extras-1.0.jar`,这两个文件都是Log4j框架的扩展和补充。 1. **log4j-1.2.15.jar**: 这是Log4j的核心库,版本为1.2.15。Log4j的主要...
它基于Apache Log4j框架设计,旨在简化Java应用程序的日志记录过程,并提供了一个用户友好的图形界面来配置日志设置。这使得开发者可以更轻松地管理和调整其应用程序的日志级别、输出格式以及目标输出位置等。 ####...
早期版本中可能还会见到`log4j.rootCategory`的配置,这是由于早期版本中使用`Category`类实现记录器功能,但随着框架发展,`Logger`类取代了`Category`,因此推荐使用`log4j.rootLogger`进行配置。 ##### 定义额外...
6. **log4j-1.2.9.jar**:Log4j的核心库,提供日志记录服务,包括配置日志级别、输出目的地(控制台、文件、数据库等)以及自定义日志格式。 7. **ognl-3.0.6.jar**:Object-Graph Navigation Language,Struts2中...
对于日志输出,MyBatis提供了两种主要方式:一是通过配置logImpl属性,直接指定使用的日志实现,如`<settings logImpl="LOG4J" />`;二是通过在类路径下放置对应的日志实现库,MyBatis会自动检测并使用。日志输出...
在介绍具体的log4j配置之前,我们先理解一下log4j的基本工作原理。log4j是由Apache提供的一个日志记录库,它允许开发者记录日志信息到不同的目的地。log4j支持多种日志输出目的地,比如控制台、文件、网络套接字等。...
在给定的"ssm框架,aop,mybatis,log4j所需的jar.rar"压缩包中,包含了这四个关键组件的jar文件。Spring的jar文件包含了核心容器、AOP模块以及与SpringMVC相关的组件。SpringMVC的jar文件主要用于处理HTTP请求和...
首先,`log4cxx`是Apache软件基金会的一个开源项目,它是Java的Log4j库的C++版本。Log4cxx提供了一套灵活的日志记录系统,支持多种输出方式,如文件、数据库、SMTP等,并且具有丰富的日志级别和布局选项,便于进行...
log4cxx是Apache软件基金会开发的一个C++版的日志框架,它是基于Java的log4j的移植。这个库提供了灵活的日志记录功能,允许开发者在不同级别(如DEBUG, INFO, WARN, ERROR, FATAL)记录日志信息,支持多种输出方式,...
6. **日志记录接口**:syslog4j提供了简单的API接口,可以方便地集成到任何Java应用程序中,替代或补充现有的日志框架,如Log4j或java.util.logging。 7. **性能优化**:syslog4j考虑了性能和效率,设计了高效的...
4. **/conf/log4j.properties**:全局的日志配置,控制日志级别和输出位置。若需要在特定webapp中自定义日志配置,可以修改此文件。 5. **/conf/red5-net.xml**:配置Mina和启动Jetty。端口等设置应通过`red5....
SLF4J(Simple Logging Facade for Java)是Java日志框架的一个接口层,它为各种日志实现提供了一个统一的API,如Log4j、java.util.logging等。Lidalia SLF4J扩展则是对SLF4J功能的一个增强,提供了更多的特性,以...
Log4j的配置文件可以方便地定制日志格式和存储位置,对于调试和监控应用状态非常有用。 3. **Struts** JAR包: Struts是Apache软件基金会的一个开源MVC框架,用于构建基于Java的Web应用程序。它遵循Model-View-...
这些参数指定了Log4j配置文件以及Spring应用上下文的配置文件位置。 通过上述配置,我们可以有效地解决Struts2.1.6中的乱码问题。需要注意的是,在实际开发中可能还需要考虑其他因素,比如数据库连接、JSP页面编码...
4. **slf4j-log4j12-1.6.1.jar**:这是SLF4J的一个绑定实现,它将SLF4J接口与Log4j日志系统连接起来。这意味着BoneCP可以通过SLF4J接口使用Log4j进行日志输出,方便调试和监控数据库连接池的运行状态。 5. **bonecp...
2. **org.slf4j.api_1.6.4.jar**:SLF4J(Simple Logging Facade for Java)是一个日志门面,为各种日志框架提供一个简单的抽象层,例如logback、log4j等。SLF4J使得最终用户能够在部署时插入所需的日志框架。org....
一个日志抽象层,允许用户在部署时插入所需的日志实现,如Log4j、Java Util Logging等。 3. **Log4j**: 是一个广泛使用的日志记录框架,提供了丰富的日志记录功能和灵活的配置。 4. **Guava**: Google提供的...
- **2.3.10 J: 修改vsftpd2.conf**: 调整虚拟用户的特定配置。 #### 三、vsFTP服务器的维护与优化 除了基本配置之外, 还可以通过以下方法进一步优化和维护vsFTP服务器: **3.1 限制用户访问** - `chroot_local_...
- 需要配置日志实现库,如`log4j-1.2.16.jar`和`slf4j-log4j12-1.5.2.jar`或`slf4j-nop-1.5.8.jar`。 - 版本一致性很重要,例如如果使用的是`slf4j-api-1.5.8.jar`,则`slf4j-nop-1.5.8.jar`也应保持一致。 - **...