Java --log4j.properties详解

已经完结的工程中用到了log4j,抽时间写一篇日志记录下。

//参考文章如下

http://it.oyksoft.com/log4j/

一、log4j是什么?有什么用?

Log4j是一个日志记录工具,基于java语言的。我们可以将日志信息输出到目的地(eg:控制台、某处文件夹等)。

二、log4j的日志等级

级别由低到高为 debug < info < warn < error < fatal

其详细对应的描述请参考百度百科。

三、log4j配置方法

有三种方法来配置log4j:1>通过.properties文件(我做的项目都采用这种方式);2>通过xml文件;3>通过java代码。

无论采用上述哪种方法,我们都可以定义log4j的三个主要组件:logger、appender和layout。详细介绍三个组件:

1>Logger,它是记录器,负责记录处理日志的大部分操作。

配置语法为

log4j.rootLogger=[level],appenderName1,appenderName2,......

级别如上已经介绍,appenderName是指日志输出地名称,同时可以指定多个输出目的地。

2>Appender,它是日志文件输出地,它负责记录日志操作的输出。

配置语法为

log4j.appender.appenderName = xxxx

log4j.appender.appenderName.option1 = value1

......

log4j.appender.appenderName.optionN = valueN

注意:如上的appenderName为1>中定义的名称,可以任意起名称。

log4j提供的appender有如下几种:

org.apache.log4j.ConsoleAppender(输出到控制台)

org.apache.log4j.FileAppender(输出到文件)

org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)

org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)

org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)

举个例子:log4j.appender.stdout = org.apache.log4j.ConsoleAppender

解释:定义一个名为stdout的输出目的地,输出到控制台。

3>Layout,它负责格式化Appender的输出

其语法为

log4j.appender.appenderName.layout = xxxx

log4j.appender.appenderName.layout.option1 = value1

......

log4j.appender.appenderName.layout.optionN = valueN

注意:log4j提供的layout有如下几种:

org.apache.log4j.HTMLLayout(以HTML表格形式布局)

org.apache.log4j.PatternLayout(灵活地指定布局模式)--这种用得最多

org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串)

org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)

四、示例详解

如下是我配置的log4j.properties文件

#指定日志级别为DEBUG,因此级别高于debug的info < warn < error < fatal都会被输出来
#指定日志输出地名称:stdout、D和E
log4j.rootLogger=DEBUG, stdout, D, E

#如下设置我的工程中哪些可能会出现bug的地方
#zhiji.caren.mapper是我工程下的某个文件夹
log4j.logger.com.zhiji.caren.mapper=DEBUG 
#如下配置sql出现bug的地方
log4j.logger.java.sql.Connection = DEBUG
log4j.logger.java.sql.Statement = DEBUG
log4j.logger.java.sql.PreparedStatement = DEBUG
log4j.logger.java.sql.ResultSet = DEBUG
 
 #如下是配置stdout输出地
 #名为stdout的输出类型为控制台 
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
#Target=System.out,输出到控制台
log4j.appender.stdout.Target = System.out
#指定布局模式
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
#指定输出打印信息的具体格式
log4j.appender.stdout.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

# 如下是配置D输出地
#指定输出地为文件
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
#文件的路径为该项目根目录下的/WEB-INF/logs/debug.log
log4j.appender.D.File = ${webapp.root}/WEB-INF/logs/debug.log
#DatePattern="."yyyy-MM意思:每月滚动一次日志文件,即每月产生一个新的日志文件。
#当前月的日志文件名为debug.log4j,前一个月的日志文件名为debug.log4j.yyyy-MM。
log4j.appender.D.DatePattern = "."yyyy-MM
#Append = true意思:将消息增加到指定文件中,false指将消息覆盖指定的文件内容。
log4j.appender.D.Append = true
#Threshold=DEBUG:指定日志消息的输出最低层次。
log4j.appender.D.Threshold = DEBUG
#指定布局模式
log4j.appender.D.layout = org.apache.log4j.PatternLayout
#指定输出打印信息的具体格式
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

# 如下是配置E输出地 --详细介绍参考D介绍
log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File = ${webapp.root}/WEB-INF/logs/error.log
log4j.appender.E.Append = true
log4j.appender.E.DatePattern = "."yyyy-MM
log4j.appender.E.Threshold = ERROR
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

备注:如果将多个工程都挂在一个tomcat下时,且这些工程都配了log4j时,这时会报错webappkey的唯一性问题,因此,这里配置webapp.root时,最好是配成 自己的项目名称.root,这样,log4j文件就会产生在各自项目/WEB-INF/logs/xx.log下。

时间: 2024-12-26 03:04:59

Java --log4j.properties详解的相关文章

Java学习篇之--- log4j.properties 详解与配置步骤

log4j.properties 详解与配置步骤 最近在剖析项目代码,看到日志功能,心血来潮收集整理了一下log4j的用法: 一.log4j.properties 的使用详解 1.输出级别的种类 ERROR.WARN.INFO.DEBUG ERROR 为严重错误 主要是程序的错误 WARN 为一般警告,比如session丢失 INFO 为一般要显示的信息,比如登录登出 DEBUG 为程序的调试信息 2.配置日志信息输出目的地 log4j.appender.appenderName = fully

log4j.properties 详解与配置步骤(转)

找的文章,供参考使用 转自 log4j.properties 详解与配置步骤 一.log4j.properties 的使用详解 1.输出级别的种类 ERROR.WARN.INFO.DEBUGERROR 为严重错误 主要是程序的错误WARN 为一般警告,比如session丢失INFO 为一般要显示的信息,比如登录登出DEBUG 为程序的调试信息 2.配置日志信息输出目的地 log4j.appender.appenderName = fully.qualified.name.of.appender.

log4j.properties 详解与配置步骤

一.log4j.properties 的使用详解 1.输出级别的种类 ERROR.WARN.INFO.DEBUGERROR 为严重错误 主要是程序的错误WARN 为一般警告,比如session丢失INFO 为一般要显示的信息,比如登录登出DEBUG 为程序的调试信息 2.配置日志信息输出目的地 log4j.appender.appenderName = fully.qualified.name.of.appender.class1.org.apache.log4j.ConsoleAppender

log4j.properties 详解与配置步骤总结

先提供一个项目中使用log4j.properties配置 #log4j.rootLogger=WARN, stdout, file log4j.rootLogger=INFO,console,dailyFile ###继承rootLogger-->additivity #log4j.additivity.org.apache=true # 控制台(console) log4j.appender.console=org.apache.log4j.ConsoleAppender log4j.appe

log4j.properties详解与例子

在项目中的classes 中新建立一个log4j.properties文件即可: 在实际编程时,要使Log4j真正在系统中运行事先还要对配置文件进行定义.定义步骤就是对Logger.Appender及Layout的分别使用.Log4j支持两种配置文件格式,一种是XML格式的文件,一种是java properties(key=value)[Java特性文件(键=值)].(这里只说明properties文件) 1.配置根Logger 其语法为:         log4j.rootLogger =

【配置】log4j.properties 详解与配置步骤

一.Log4j基本使用方法 Log4j由三个重要的组件构成:[日志信息的优先级],[日志信息的输出目的地],[日志信息的输出格式]. 日志信息的优先级从高到低有ERROR.WARN. INFO.DEBUG,分别用来指定这条日志信息的重要程度: 日志信息的输出目的地指定了日志将打印到控制台还是文件中: 而输出格式则控制了日志信息的显示内容. 1.1.定义配置文件 其实您也可以完全不使用配置文件,而是在代码中配置Log4j环境.但是,使用配置文件将使您的应用程序更加灵活.Log4j支持两种配置文件格

log4j.properties详解

################################################################################ #①配置根Logger,其语法为: # #log4j.rootLogger =[level],appenderName,appenderName2,... #level是日志记录的优先级,分为OFF,TRACE,DEBUG,INFO,WARN,ERROR,FATAL,ALL ##Log4j建议只使用四个级别,优先级从低到高分别是DEBU

Log4j使用详解(log4j.properties格式)

Log4j使用详解(log4j.properties格式) 1.Log4j 的引入 在应用程序中添加日志记录总的来说基于三个目的: ① 监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统计分析工作: ② 跟踪代码运行时轨迹,作为日后审计的依据: ③ 担当集成开发环境中的调试器的作用,向文件或控制台打印代码的调试信息. 最普通的做法就是在代码中嵌入许多的打印语句,这些打印语句可以输出到控制台或文件中,比较好的做法就是构造一个日志操作类来封装此类操作,而不是让一系列的打印语句充斥了代码的

org.apache.log4j.Logger 详解

org.apache.log4j.Logger 详解 1. 概述 1.1. 背景    在应用程序中添加日志记录总的来说基于三个目的 :监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统计分析工作:跟踪代码运行时轨迹,作为日后审计的依据:担当集成开发环境中的调试器的作用,向文件或控制台打印代码的调试信息.   最普通的做法就是在代码中嵌入许多的打印语句,这些打印语句可以输出到控制台或文件中,比较好的做法就是构造一个日志操作类 来封装此类操作,而不是让一系列的打印语句充斥了代码的主体.