Commons_logging包 Apache通用日志包
他为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=
Log4J
Message
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=
INSERT
INTO
A1
(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一条就链接一次数据库。()