Commons_logging包 Apache通用日志包
他為Log4JLogger;NoOpLog;LogKitLogger;Jdk14Logger;AvalonLogger提供了一共通用的接口進(jìn)行調(diào)用,使得在使用各種不同的第三方日志包時(shí)變得非常簡單。SimpleLog:是commons_logging自帶的一個(gè)控制臺(tái)輸出日志。
可以通過簡單的配置使用不同的第三方日志包。
在src根目錄下放進(jìn)commons-logging.properties文件,進(jìn)行配置使用哪個(gè)第三方日志包。
#定義了使用的具體第三方的日值包
#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
程序中調(diào)用:
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public static Log log = LogFactory.getLog(test.class);
log.error("成功關(guān)閉鏈接");
在commons_logging.properties文件中定義好了使用那個(gè)第三方日志包,在程序中打印日志時(shí),就使用的是那個(gè)包,非常方便。
Log 日志包
log4j.appender.consoleAppender=org.apache.log4j.ConsoleAppender
log4j.appender.logfile=org.apache.log4j.DailyRollingFileAppender
ConsoleAppender,控制臺(tái)輸出
FileAppender,文件日志輸出
SMTPAppender,發(fā)郵件輸出日志
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 //默認(rèn)為true,添加到末尾,false在每次啟動(dòng)時(shí)進(jìn)行覆蓋
log4j.appender.logfile.MaxFileSize=10KB //一個(gè)log文件的大小,超過這個(gè)大小就又會(huì)生成1個(gè)日志 //KB ,MB,GB
log4j.appender.logfile.MaxBackupIndex=3 //最多保存3個(gè)文件備份
log4j.appender.logfile.layout=org.apache.log4j.HTMLLayout //輸出文件的格式
log4j.appender.logfile.layout.LocationInfo=true #是否顯示類名和行數(shù)
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 #是否顯示類名和行數(shù)
############################## 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 ## 默認(rèn)為true 打印類別名 # log4j.appender.logfile.layout.ContextPrinting=
false ## 默認(rèn)為true 打印上下文信息 # log4j.appender.logfile.layout.ThreadPrinting=
false ## 默認(rèn)為true 打印線程名 # 打印信息如下: 2007-09-13 14:45:39,765 [http-8080-1] ERROR com.poxool.test.test - error 成功關(guān)閉鏈接 ###############################################################################
每天文件的輸出: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 #默認(rèn)為true,添加到末尾,false在每次啟動(dòng)時(shí)進(jìn)行覆蓋
log4j.appender.errorlogfile.ImmediateFlush=true #直接輸出,不進(jìn)行緩存
#'.'yyyy-MM: 每個(gè)月更新一個(gè)log日志
#'.'yyyy-ww: 每個(gè)星期更新一個(gè)log日志
#'.'yyyy-MM-dd: 每天更新一個(gè)log日志
#'.'yyyy-MM-dd-a: 每天的午夜和正午更新一個(gè)log日志
#'.'yyyy-MM-dd-HH: 每小時(shí)更新一個(gè)log日志
#'.'yyyy-MM-dd-HH-mm: 每分鐘更新一個(gè)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
控制臺(tái)輸出:
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 //直接輸出,不進(jìn)行緩存
log4j.appender.consoleAppender.Target=System.err //默認(rèn)是System.out方式輸出
!-----------------------------------------------------------------------------! ! PATTERN FORMATS GLOSSARY ! !-----------------------------------------------------------------------------! ! %n – 新的一行 ! ! %m – 打印錯(cuò)誤信息 ! ! %p – 打印優(yōu)先級(jí)信息 (FATAL, ERROR, WARN, INFO, DEBUG or custom) ! ! %r – 打印程序開始后過去的毫秒數(shù) ! ! %% - 打印輸出的百分比 ! ! ! !-----------------------SOME MORE CLUTTER IN YOUR LOG-------------------------! ! %c - name of your category (logger), %c{2} will outputs last two components ! ! %t – 打印產(chǎn)生該日志信息的線程名稱 ! ! %x – 打印嵌套的上下文信息 ! ! ! !-------------------------SLOW PERFORMANCE FORMATS----------------------------! ! %d – 打印時(shí)間和日期, 比如 %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 代碼錯(cuò)誤的行數(shù) ! ! %C - Java 類的名稱, %C{1} 將輸出以“.”分割的后面一個(gè) ! ! %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. ! !-----------------------------------------------------------------------------! 發(fā)送郵件: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
數(shù)據(jù)庫: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
//數(shù)據(jù)庫的鏈接會(huì)有問題,可以重寫org.apache.log4j.jdbc.JDBCAppender的getConnection使用數(shù)據(jù)庫鏈接池去得鏈接,可以避免insert一條就鏈接一次數(shù)據(jù)庫。()
|
|