关于log4j和commons-logging

原创 2007年10月11日 18:33:00

 

Log4j用法  
将Log4j和commons.logging的jar包加到构建路径中(classpath),我出现过这么一个问题javaEE5自带的commons.logging不可用后来发现路径应修改为:
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
 
然后写一个log4j.properties 文件放在根路径。
log4j.properties 文件完整的示例如下:
##定义rootLogger,级别为DEBUG,输出地为stdout
       log4j.rootLogger=DEBUG,stdout
       ##定义用于记录错误信息的Logger:ErrorLog
       log4j.logger.ErrorLog=ERROR , errLog
       ##定义用于记录业务信息的Logger:BusinessLog
       log4j.logger.BusinessLog=INFO, businessLog
      
##设置stdout ##
       log4j.appender. stdout =org.apache.log4j.ConsoleAppender
##输出到控制台
log4j.appender.stdout.Target=System.out
##设置为灵活的布局模式。
log4j.appender. stdout.layout=org.apache.log4j.PatternLayout
       ##设置转换模式。类似于C中输出函数(printf())中的转换模式。
log4j.appender. stdout.layout.ConversionPattern=%r [%t] %-5p %C.%M() - %m%n
                    
## 设置 errLog ##
##指定Appender 名称为errLog,并且每天产生一个日志文件。
       log4j.appender.errLog= org.apache.log4j.DailyRollingAppender
       ##指定输出地为文件error.log
       log4j.appender.errLog.file=error.log
       ##指定日期格式
       log4j.appender.errLog.DatePattern=’.’yyyy-MM-dd
       log4j.appender.errLog.layout=org.apache.log4j.PatternLayout
       log4j.appender.errLog.ConversionPattern= %p -- %d{yyyy-MM-dd HH:mm:ss,SSS} - %c – Method:%m%n
## 设置businessLog ##
##指定Appender 名称为businessLog,并且每天产生一个日志文件。
 
  
注:# 为注释符号
可见log4j中有三种组件 Logger, Appender 和 Layout。详细解释如下.
 
Logger:
定义的格式:log4j.[loggername]=[level], appenderName1, appenderName2
level 是日至的级别 DEBUG<INFO<WARN<ERROR<FATAL
       如果定义级别为ERROR,则只有级别比它高的才会执行,即:执行FATAL,当然也包括指定的级别,即 ERROR。
appenderNamex 是日志的输出地。由后面的Appender定义。
ex:
       定义rootLogger,级别为DEBUG
       log4j.rootLogger=DEBUG
       定义用于记录错误信息的Logger:ErrorLog
       log4j.logger.ErrorLog=ERROR , errLog
       定义用于记录业务信息的Logger:BusinessLog
       log4j.logger.BusinessLog=INFO, businessLog
      
Appender:
org.apache.log4j.ConsoleAppender 控制台
org.apache.log4j.FileAppender 文件
org.apache.log4j.DailyRollingAppender 每天产生一个日志文件
org.apache.log4j.RollingFileAppender 文件到达指定大小时产生一个新的文件
org.apache.log4j.ConsoleAppender 将日志信息以流的方式发送到任意指定地方
 
定义格式:
              log4j.appender.appenderName=上述的类名
              log4j.appender.appenderName.option1=value1
              ……..
log4j.appender.appenderName.optionN=valueN
       以此类推。
ex:
       指定Appender 名称为errLog,并且每天产生一个日志文件。
       log4j.appender.errLog=org.apache.log4j.DailyRollingAppender
       指定输出地为文件error.log
       log4j.appender.errLog.file=error.log
       指定日期格式
       log4j.appender.errLog.DatePattern=’.’yyyy-MM-dd
       指定Layout,有关设置见Layout
       log4j.appender.errLog.layout=org.apache.log4j.PatternLayout
 
 
Layout:
       org.apache.log4j.HTMLLayout 用HTML表格的形式布局
       org.apache.log4j.PatternLayout 可以灵活的指定布局
org.apache.log4j.SimpleLayout 包含是指信息的级别和信息字符串
org.apache.log4j.TTCCLayout 包含日志产生的时间,线程,类别的信息
 
常用的为 PatternLayout .
      
定义格式
       log4j.appender.appenderName.layout=上述类名
       log4j.appender.appenderName.option1=value1
       …….
       log4j.appender.appenderName.optionN=valueN
ex:
       设置为灵活的布局模式。
       log4j.appender.errLog.layout=org.apache.log4j.PatternLayout
       设置转换模式。类似于C中输出函数(printf())中的转换模式。
       log4j.appender.errLog.ConversionPattern= %p -- %d{yyyy-MM-dd HH:mm:ss,SSS} - %c – Method:%m%n
 
       转换模式常用参数:(详细信息参见Log4j Conversion Pattern )
       %p 日志信息的级别
       %d 日志信息产生的时间
       %c 日志信息所在类名
       %m日志的具体信息
       %n 输出一个换行符
      
Apache 通用日志包
Log4j 仅仅是 Apache 通用日志包的一种实现。
要在代码中使用它还要借助 Apache 通用日志包。
前面日志的级别是在Apache 通用日志包定义的。并由日志实现指定级别(如:log4j.properties中指定)
FATAL 非常严重的错误,导致系统中止。
ERROR 其他运行时的错误。
WARN 警告
INFO  有意义的信息
DEBUG 系统运行时更加详细的信息
TRACE 更加详细的信息
 
 
 
在代码中,通常以下列方式使用:
       //通过org.apache.commons.logging.LogFactory接口静态方法
//public static void getLog(String name)
//或
//public static void getLog(Class class)
//取得org.apache.commons.loggin.Log 对象。
 
Log logger=LogFactory.getLog(String name )  //指定Logger的Name
       //Log logger=LogFactory.getLog(Class class) //指定的类,用 ClassName.class ,如:PeclinicDAO.class
      
       //记录日志信息
       logger.fatal(Object msg)
       logger.fatal(Object msg, Throwable t)
       logger.error(Object msg)
       logger.error(Object msg, Throwable t)
       其他类似。
 
       Log接口的一组方法可以判断允许的日志级别
       logger.isFatalEnabled()
       logger.isErrorEnabled()
       logger.isWarnEnabled()
       其他类似。
       代码示例:
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
 
public class HelloWorld{
       pirvate static final Log logger=LogFactory.getLog(HelloWorld.class)
      
       public void sayHello(String greet){
              if(logger.isInfoEnabled()){
                     logger.info(greet);
              }// end if
}// end sayHello
}// end HelloWorld
 
 

log桥接工具jcl-over-slf4j使用(项目排除commons-logging依赖的影响)

1、多日志实现组件存在问题java世界里有许多实现日志功能的工具,最早得到广泛使用的是 log4j,许多应用程序的日志部分都交给了 log4j,不过作为组件开发者,他们希望自己的组件不要紧紧依赖某一个...
  • javaloveiphone
  • javaloveiphone
  • 2016年09月09日 13:33
  • 2480

Java使用Log日志系统(common-logging和log4j)

使用common-logging和log4j准备开一大项目的话,日志系统必不可少。Apache为了让众多的日志工具有一个相同操作方式,实现了一个通用日志工具包:commons-logging。而Log...
  • geekun
  • geekun
  • 2016年05月13日 21:20
  • 7080

tomcat日志配置之三Commons-logging与Log4J配合使用

Apache Commons-logging使用实例 本文将介绍如何在程序中使用Apache Commons-logging author: ZJ 07-3-17 Blog: [url]ht...
  • li_xiao_ming
  • li_xiao_ming
  • 2014年03月19日 15:25
  • 3169

log4j jdklog commons-logging 关系及简单应用

  • 2011年02月15日 15:22
  • 8KB
  • 下载

log4j.jar,soap.jar,commons-logging.jar,hsqldb.jar

  • 2008年07月17日 11:16
  • 1.08MB
  • 下载

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

  • 2017年04月17日 08:57
  • 6.21MB
  • 下载

poi-3.6-20091214.jar commons-logging-1.1.jar junit-3.8.1.jar log4j-1.2.13.jar

  • 2016年12月20日 15:10
  • 1.75MB
  • 下载

commons-logging.jar log4j.jar

  • 2010年12月11日 21:18
  • 175KB
  • 下载

spring jar 包 _ log4j-1.2.17.jar_commons-logging.jar

  • 2017年01月09日 10:53
  • 3.02MB
  • 下载

log4j-1.2.14和commons-logging-1.1

  • 2011年03月11日 10:50
  • 370KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于log4j和commons-logging
举报原因:
原因补充:

(最多只允许输入30个字)