`

commons-logging和log4j总结

阅读更多
commons-logging和log4j总结

简单的说log4j就是帮助开发人员进行日志输出管理的API类库。它最重要的特点就

可以配置文件灵活的设置日志信息的优先级、日志信息的输出目的地以及日志信息的输出格式。

Log4j除了可以记录程序运行日志信息外还有一重要的功能就是用来显示调试信息。程序员经常会遇到脱离java ide环境调试程序的情况,这时大多数人会选择使用System.out.println语句输出某个变量值的方法进行调试。这样会带来一个非常麻烦的问题:一旦哪天程序员决定不要显示这些System.out.println的东西了就只能一行行的把这些垃圾语句注释掉。若哪天又需调试变量值,则只能再一行行去掉这些注释恢复System.out.println语句。使用log4j可以很好的处理类似情况。

log4j使用方法


  1、定义配置文件

   首先使用配置文件将使我们的应用程序更加灵活配置log日志输出方式包括输出优先级、输出目的地、输出格式。Log4j支持两种配置文件格式,一种是XML格式的文件,一种是Java特性文件log4j.properties(键=值)。下面将介绍使用log4j.properties文件作为配置文件的方法:

  ①配置根Logger,其语法为:0

  log4j.rootLogger = [ level ] , appenderName, appenderName, …

  其中,level 是日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者自定义的级别。Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG。通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。比如在这里定义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来。 appenderName就是指定日志信息输出到哪个地方。可同时指定多个输出目的地。

  ②配置日志信息输出目的地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(将日志信息以流格式发送到任意指定的地方)


  ③配置日志信息的格式(布局),其语法为:

  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 输出代码中指定的消息

%n 输出一个回车换行符,Windows平台为“\r\n”,Unix平台为“\n”
%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java:10)
%c 输出日志信息所属的类的全名
%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy-MM-dd HH:mm:ss },输出类似:2002-10-18- 22:10:28
%f 输出日志信息所属的类的类名
%m 输出代码中指定的信息,如log(message)中的message
%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL。如果是调用debug()输出的,则为DEBUG,依此类推
%r 输出自应用启动到输出该日志信息所耗费的毫秒数
%t 输出产生该日志事件的线程名 
2 .程序中如何打印出Log日志
结合 commons-logging.jar log4j-1.2.9.jar
Log log = LogFactory.getLog(Test.class);
log.debug("XXXX");

配置实例log4j.properties
log4j.rootLogger=DEBUG, stdout,R

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm}]%-5p(%F:%L) - %m%n

log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
log4j.appender.R.File=log.txt
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=[%d{yyyy-MM-dd HH:mm}]%-5p(%F:%L) - %m%n

#表示对com.langhua包下面所有调试信息使用error,这样可以方便调试
log4j.logger.com.langhua = error


log4j.rootLogger=DEBUG,CONSOLE,DATABASE,FILE   
log4j.addivity.org.apache=true   
  
# 应用于控制台   
log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender   
log4j.appender.CONSOLE.Threshold=INFO   
log4j.appender.CONSOLE.Target=System.out   
log4j.appender.CONSOLE.Encoding=GBK   
log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout   
log4j.appender.CONSOLE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n   
  
# 用于数据库   
#log4j.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender   
#log4j.appender.DATABASE.URL=jdbc:mysql://localhost:3306/ww   
#log4j.appender.DATABASE.driver=com.mysql.jdbc.Driver   
#log4j.appender.DATABASE.user=root    
#log4j.appender.DATABASE.password=123  
#log4j.appender.CONSOLE.Threshold=WARN   
#log4j.appender.DATABASE.sql=INSERT INTO LOG4J(stamp,thread, infolevel,class,messages) VALUES ('%d{yyyy-MM-dd HH:mm:ss}', '%t', '%p', '%l', '%m')   
# INSERT INTO LOG4J (Message) VALUES ('[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n')   
# 写入数据库中的表LOG4J的Message字段中,内容%d(日期)%c: 日志信息所在地(类名)%p: 日志信息级别%m: 产生的日志具体信息 %n: 输出日志信息换行   
#log4j.appender.DATABASE.layout=org.apache.log4j.PatternLayout   
#log4j.appender.DATABASE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n   
  
# 每天新建日志   
log4j.appender.A1=org.apache.log4j.DailyRollingFileAppender   
log4j.appender.A1.File=C:/log4j/log   
log4j.appender.A1.Encoding=GBK   
log4j.appender.A1.Threshold=DEBUG   
log4j.appender.A1.DatePattern='.'yyyy-MM-dd   
log4j.appender.A1.layout=org.apache.log4j.PatternLayout   
log4j.appender.A1.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L : %m%n   
  
#应用于文件   
log4j.appender.FILE=org.apache.log4j.FileAppender   
log4j.appender.FILE.File=C:/log4j/file.log   
log4j.appender.FILE.Append=false   
log4j.appender.FILE.Encoding=GBK   
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout   
log4j.appender.FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n   
  
# 应用于文件回滚   
log4j.appender.ROLLING_FILE=org.apache.log4j.RollingFileAppender   
log4j.appender.ROLLING_FILE.Threshold=ERROR   
log4j.appender.ROLLING_FILE.File=rolling.log   
log4j.appender.ROLLING_FILE.Append=true   
log4j.appender.CONSOLE_FILE.Encoding=GBK   
log4j.appender.ROLLING_FILE.MaxFileSize=10KB   
log4j.appender.ROLLING_FILE.MaxBackupIndex=1  
log4j.appender.ROLLING_FILE.layout=org.apache.log4j.PatternLayout   
log4j.appender.ROLLING_FILE.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n   
  
#自定义Appender   
log4j.appender.im = net.cybercorlin.util.logger.appender.IMAppender   
log4j.appender.im.host = mail.cybercorlin.net   
log4j.appender.im.username = username   
log4j.appender.im.password = password   
log4j.appender.im.recipient = corlin@cybercorlin.net   
log4j.appender.im.layout=org.apache.log4j.PatternLayout   
log4j.appender.im.layout.ConversionPattern =[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n   
  
#应用于socket   
log4j.appender.SOCKET=org.apache.log4j.RollingFileAppender   
log4j.appender.SOCKET.RemoteHost=localhost   
log4j.appender.SOCKET.Port=5001  
log4j.appender.SOCKET.LocationInfo=true   
# Set up for Log Facter 5  
log4j.appender.SOCKET.layout=org.apache.log4j.PatternLayout   
log4j.appender.SOCET.layout.ConversionPattern=[start]%d{DATE}[DATE]%n%p[PRIORITY]%n%x[NDC]%n%t[THREAD]%n%c[CATEGORY]%n%m[MESSAGE]%n%n   
# Log Factor 5 Appender   
log4j.appender.LF5_APPENDER=org.apache.log4j.lf5.LF5Appender   
log4j.appender.LF5_APPENDER.MaxNumberOfRecords=2000  
  
# 发送日志给邮件   
log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender   
log4j.appender.MAIL.Threshold=FATAL   
log4j.appender.MAIL.BufferSize=10  
log4j.appender.MAIL.From=web@www.wuset.com   
log4j.appender.MAIL.SMTPHost=www.wusetu.com   
log4j.appender.MAIL.Subject=Log4J Message   
log4j.appender.MAIL.To=web@www.wusetu.com   
log4j.appender.MAIL.layout=org.apache.log4j.PatternLayout   
log4j.appender.MAIL.layout.ConversionPattern=[framework] %d - %c -%-4r [%t] %-5p %c %x - %m%n  

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics