`
kalogen
  • 浏览: 889937 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Commons_logging包 Apache通用日志包

    博客分类:
  • Java
阅读更多

他为Log4JLogger;NoOpLog;LogKitLogger;Jdk14Logger;AvalonLogger提供了一共通用的接口进行调用,使得在使用各种不同的第三方日志包时变得非常简单。SimpleLog:是commons_logging自带的一个控制台输出日志。
可以通过简单的配置使用不同的第三方日志包。
在src根目录下放进commons-logging.properties文件,进行配置使用哪个第三方日志包。
#定义了使用的具体第三方的日值包
#org.apache.commons.logging.Log=org.apache.commons.logging.impl.SimpleLog
org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger
#org.apache.commons.logging.Log=org.apache.commons.logging.impl.NoOpLog
#org.apache.commons.logging.Log=org.apache.commons.logging.impl.LogKitLogger
#org.apache.commons.logging.Log=org.apache.commons.logging.impl.Jdk14Logger
#org.apache.commons.logging.Log=org.apache.commons.logging.impl.AvalonLogger
程序中调用:
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public static Log log = LogFactory.getLog(test.class);
log.error("成功关闭链接");
 
在commons_logging.properties文件中定义好了使用那个第三方日志包,在程序中打印日志时,就使用的是那个包,非常方便。
Log 日志包
log4j.appender.consoleAppender=org.apache.log4j.ConsoleAppender
log4j.appender.logfile=org.apache.log4j.DailyRollingFileAppender
ConsoleAppender,控制台输出
FileAppender,文件日志输出
SMTPAppender,发邮件输出日志
SocketAppender,Socket日志
NTEventLogAppender,Window NT日志
SyslogAppender,
JMSAppender,
AsyncAppender,
NullAppender
 
文件输出:RollingFileAppender
log4j.rootLogger=INFO,logfile
log4j.appender.logfile=org.apache.log4j.RollingFileAppender
log4j.appender.logfile.Threshold=INFO          //输出以上的INFO信息
log4j.appender.logfile.File=../logs/INFO_log    //保存log文件路径
log4j.appender.logfile.Append=true               //默认为true,添加到末尾,false在每次启动时进行覆盖
log4j.appender.logfile.MaxFileSize=10KB //一个log文件的大小,超过这个大小就又会生成1个日志 //KB ,MB,GB
log4j.appender.logfile.MaxBackupIndex=3 //最多保存3个文件备份
log4j.appender.logfile.layout=org.apache.log4j.HTMLLayout     //输出文件的格式
log4j.appender.logfile.layout.LocationInfo=true #是否显示类名和行数
log4j.appender.logfile.layout.Title=页面title       #html页面的<title>
############################## SampleLayout ####################################
# log4j.appender.logfile.layout=org.apache.log4j.SampleLayout
############################## PatternLayout ###################################
# log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
# log4j.appender.logfile.layout.ConversionPattern=%d%p[%c]-%m%n%d
############################## XMLLayout #######################################
# log4j.appender.logfile.layout=org.apache.log4j.XMLLayout
# log4j.appender.logfile.layout.LocationInfo=true   #是否显示类名和行数
############################## TTCCLayout ######################################
# log4j.appender.logfile.layout=org.apache.log4j.TTCCLayout
# log4j.appender.logfile.layout.DateFormat=ISO8601
#NULL, RELATIVE, ABSOLUTE, DATE or ISO8601.
# log4j.appender.logfile.layout.TimeZoneID=GMT-8:00
# log4j.appender.logfile.layout.CategoryPrefixing=false ##默认为true 打印类别名
# log4j.appender.logfile.layout.ContextPrinting=false    ##默认为true 打印上下文信息
# log4j.appender.logfile.layout.ThreadPrinting=false ##默认为true 打印线程名
# 打印信息如下:
2007-09-13 14:45:39,765 [http-8080-1] ERROR com.poxool.test.test - error成功关闭链接
###############################################################################
每天文件的输出:DailyRollingFileAppender
log4j.rootLogger=INFO,errorlogfile
log4j.appender.errorlogfile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.errorlogfile.Threshold=ERROR
log4j.appender.errorlogfile.File=../logs/ERROR_log
log4j.appender.errorlogfile.Append=true #默认为true,添加到末尾,false在每次启动时进行覆盖
log4j.appender.errorlogfile.ImmediateFlush=true       #直接输出,不进行缓存
#'.'yyyy-MM: 每个月更新一个log日志
#'.'yyyy-ww: 每个星期更新一个log日志
#'.'yyyy-MM-dd: 每天更新一个log日志
#'.'yyyy-MM-dd-a: 每天的午夜和正午更新一个log日志
#'.'yyyy-MM-dd-HH: 每小时更新一个log日志
#'.'yyyy-MM-dd-HH-mm: 每分钟更新一个log日志
log4j.appender.errorlogfile.DatePattern='.'yyyy-MM-dd'.log' #文件名称的格式
log4j.appender.errorlogfile.layout=org.apache.log4j.PatternLayout
log4j.appender.errorlogfile.layout.ConversionPattern=%d%p[%c]-%m%n%d
 
控制台输出:
log4j.rootLogger=INFO,consoleAppender
log4j.appender.consoleAppender=org.apache.log4j.ConsoleAppender
log4j.appender.consoleAppender.Threshold=ERROR
log4j.appender.consoleAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.consoleAppender.layout.ConversionPattern=%d%-5p%m%n
log4j.appender.consoleAppender.ImmediateFlush=true        //直接输出,不进行缓存
log4j.appender.consoleAppender.Target=System.err //默认是System.out方式输出
 
!-----------------------------------------------------------------------------

!!                          PATTERN FORMATS GLOSSARY                          

!!-----------------------------------------------------------------------------

!! %n – 新的一行                                                             

!! %m – 打印错误信息                                                         

!! %p – 打印优先级信息  (FATAL, ERROR, WARN, INFO, DEBUG or custom)          

!! %r – 打印程序开始后过去的毫秒数                                           

 !! %% -  打印输出的百分比                                                      

!!                                                                            

!!-----------------------SOME MORE CLUTTER IN YOUR LOG-------------------------

!! %c - name of your category (logger), %c{2} will outputs last two components

!! %t – 打印产生该日志信息的线程名称                                         

!! %x – 打印嵌套的上下文信息                                                 

 !!                                                                            

!!-------------------------SLOW PERFORMANCE FORMATS----------------------------

!! %d – 打印时间和日期, 比如 %d{ISO8601}, %d{DATE}, %d{ABSOLUTE},            

!!        %d{HH:mm:ss,SSS}, %d{dd MMM yyyy HH:mm:ss,SSS} 等等                 

!! %l - Shortcut for %F%L%C%M                                                 

!! %F - Java 代码文件名称                                                     

!! %L - Java 代码错误的行数                                                   

!! %C - Java 类的名称, %C{1} 将输出以“.”分割的后面一个                      

!! %M - Java 方法的名称                                                      

!!                                                                            

!!------------------------------FORMAT MODIFIERS-------------------------------

!! %-any_letter_above - Left-justify in min. width (default is right-justify)

!! %20any_letter_above - 20 char. min. width (pad with spaces if reqd.)       

!! %.30any_letter_above - 30 char. max. width (truncate beginning if reqd.)   

!! %-10.10r - Example. Left-justify time elapsed within 10-wide field.       

!!              Truncate from beginning if wider than 10 characters.          

!!-----------------------------------------------------------------------------!
发送邮件:SMTPAppender
log4j.rootLogger=INFO,MAIL
log4j.appender.MAIL=org.apache.log4j.net.SMTPAppender
log4j.appender.MAIL.Threshold=DEBUG
log4j.appender.MAIL.BufferSize=10KB
log4j.appender.MAIL.From=yu77585211111@163.com
log4j.appender.MAIL.SMTPHost=mail.myce.net.cn
log4j.appender.MAIL.Subject=Log4JMessage
log4j.appender.MAIL.To=yuyongpeng@myce.net.cn
log4j.appender.MAIL.layout=org.apache.log4j.PatternLayout
log4j.appender.MAIL.layout.ConversionPattern=%d-%c-%-4r[%t]%-5p%c%x-%m%n
 
数据库:JDBCAppender
log4j.appender.DATABASE=org.apache.log4j.jdbc.JDBCAppender
log4j.appender.DATABASE.URL=jdbc:oracle:thin:@210.51.173.94:1521:YDB
log4j.appender.DATABASE.driver=oracle.jdbc.driver.OracleDriver
log4j.appender.DATABASE.user=ydbuser
log4j.appender.DATABASE.password=ydbuser
log4j.appender.DATABASE.sql=INSERTINTOA1(TITLE3)VALUES('%d-%c%-5p%c%x-%m%n')
log4j.appender.DATABASE.layout=org.apache.log4j.PatternLayout
log4j.appender.DATABASE.layout.ConversionPattern=%d-%c-%-4r[%t]%-5p%c%x-%m%n
//数据库的链接会有问题,可以重写org.apache.log4j.jdbc.JDBCAppender的getConnection使用数据库链接池去得链接,可以避免insert一条就链接一次数据库。()


本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/yuyongpeng/archive/2007/09/09/1777892.aspx

分享到:
评论

相关推荐

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

    Commons Logging 是 Apache 的一个通用日志接口,它提供了一个简单的API,使得开发者能够在不关心具体日志实现的情况下,切换不同的日志框架,如Log4j、Java内置的日志系统等。Commons Logging 1.2 版本的特点有: ...

    commons-logging-1.1.3.jar

    common-logging是apache提供的一个通用的日志接口。用户可以自由选择第三方的日志组件作为具体实现,像log4j,或者jdk自带的logging, common-logging会通过动态查找的机制,在程序运行时自动找出真正使用的日志库。...

    commons-logging-1.2.rar

    Apache Commons Logging(简称Commons Logging)是一个轻量级的日志API,它的设计目标是为Java应用程序提供一个独立于具体日志实现的抽象层。通过Commons Logging,开发者可以方便地更换不同的日志框架,如Log4j、...

    commons-logging-1.1.1.jar.zip

    总的来说,Apache Commons Logging 是Java开发中非常实用的一个工具,它提供了跨日志实现的通用接口,使得日志管理和维护变得更加灵活和方便。不过,为了确保最佳的兼容性和性能,开发者需要根据项目需求选择合适的...

    Apache通用日志包.pdf

    Apache通用日志包(Commons Logging Package)是Apache组织推出的一款开源日志解决方案。它为Java应用提供了一个简单而强大的日志记录接口。该包的核心特性在于其高度的灵活性,可以与多种日志实现框架协同工作。 -...

    commons-logging-1.2源代码

    这个源代码包"commons-logging-1.2"是Apache Commons Logging库的1.2版本的源代码,用于深入理解其内部工作原理和定制日志行为。 Apache Commons Logging 的核心设计原则是解耦应用代码与具体日志实现。通过使用...

    commons-logging-1.2.1.1.jar

    Commons Logging通过提供一套简单的API,使得开发者可以调用通用的日志方法,如`LogFactory.getLog(Class&lt;?&gt; clazz)`来获取一个`Log`实例,然后通过这个实例进行不同级别的日志输出,如`debug()`, `info()`, `warn()...

    common-logging1.1.1jar

    Apache Commons Logging(简称Commons Logging)是Java领域中广泛使用的日志记录工具包,它提供了一个轻量级的日志接口,允许开发者在不修改代码的情况下更换底层的日志实现。在本文中,我们将深入探讨Commons ...

    commons-logging-1.2-bin.tar.gz

    Apache Commons Logging 是一个Java日志框架,它提供了一个API,允许开发者在他们的应用程序中使用不同的日志实现。这个"commons-logging-1.2-bin.tar.gz"文件是Apache Commons Logging库的1.2版本的二进制分发包,...

    commons-logging-1.1.1-bin 和 commons-el-1.0 jar

    Apache Commons Logging(简称Commons Logging)和Commons EL(Expression Language)是两个在Java开发中常用的开源组件,它们分别在日志记录和表达式语言处理方面提供了强大的支持。 Apache Commons Logging是...

    commons-logging-1.2源码(commons-logging-1.2-src.tar.gz)

    Apache Commons Logging 是一个Java日志框架的抽象层,它允许应用程序使用多种日志实现,而无需修改代码。这个"commons-logging-1.2源码(commons-logging-1.2-src.tar.gz)"文件包含了Apache Commons Logging 1.2...

    commons-logging-1.1.1-bin

    1. **接口统一**:提供了一组简单的API接口,如`org.apache.commons.logging.Log`、`org.apache.commons.logging.LogFactory`,让开发者可以调用通用的日志方法,如`debug()`, `info()`, `warn()`, `error()` 和 `...

    struts2 的类库 commons-logging-1.1 文档

    `commons-logging-1.1`是Java开发中常用的一个日志抽象层,它为不同的日志实现(如Log4j、Java内置的日志API等)提供了一个通用的接口。这样,开发者只需要与`commons-logging`交互,而无需直接接触底层日志系统。这...

    rar压缩文件解压junjar包与commons-logging依赖包

    Apache Commons Logging是Java的一个通用日志记录接口,它提供了一个抽象层,允许在运行时选择不同的日志实现。这种灵活性意味着开发者可以在不修改代码的情况下更换日志框架,比如从log4j切换到java.util.logging...

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

    描述中提到的"commons-logging-1.1.jar"是Apache Commons Logging库的1.1版本。这是一个轻量级的日志记录抽象层,它允许应用程序开发者选择他们偏好的日志框架,如Log4j、Java内置的java.util.logging,或者任何其他...

    commons-logging

    Apache Commons Logging,简称`commons-logging`,是Java平台上的一个日志抽象层库。它为各种日志框架提供了一个统一的接口,如Log4j、java.util.logging(JUL)和SimpleLog等。这个库的主要目的是使得在不同的日志...

    Apache Commons官网下的jar包

    8. **Commons Logging**:一个简单的日志接口,可以与各种日志实现(如 Log4j、Java Util Logging)进行桥接。 9. **Commons HttpClient**:提供了 HTTP 客户端功能,便于进行网络请求。 10. **Commons CSV**:...

    spring框架4.3.10+commons-logging-1.2的jar包

    最后,提到的`commons-logging-1.2`是Apache Commons Logging库,它是日志记录的抽象层,允许在运行时动态选择不同的日志实现。Spring框架使用它来进行内部的日志输出,这样开发者可以根据自己的需求选择合适的日志...

    async4j+commons-logging

    而 `commons-logging` 是Apache软件基金会开发的一个通用的日志记录接口,它为Java应用程序提供了一种灵活的日志记录解决方案,可以在不同的日志实现之间轻松切换。 `async4j` 主要提供了事件驱动和基于回调的编程...

Global site tag (gtag.js) - Google Analytics