java logger

日志系統(tǒng)

日志結(jié)構(gòu)

log4j配置文件詳解

引用:http://www.cnblogs.com/ITtangtang/p/3926665.html

Log4j簡介

Loggers(記錄器)体捏,Appenders (輸出源)和Layouts(布局)

  1. loggers

日志級別:DEBUG毒返、INFO重归、WARN窟赏、ERROR和FATAL

  1. appenders

日志輸出: 控制臺(Console)枫弟、文件(Files)
常使用的類如下:
org.apache.log4j.ConsoleAppender(控制臺)
org.apache.log4j.FileAppender(文件)
org.apache.log4j.DailyRollingFileAppender(每天產(chǎn)生一個日志文件)
org.apache.log4j.RollingFileAppender(文件大小到達指定尺寸的時候產(chǎn)生一個新的文件)
org.apache.log4j.WriterAppender(將日志信息以流格式發(fā)送到任意指定的地方)

  1. layouts

日志格式化輸出
常使用的類如下:
org.apache.log4j.HTMLLayout(以HTML表格形式布局)
org.apache.log4j.PatternLayout(可以靈活地指定布局模式)
org.apache.log4j.SimpleLayout(包含日志信息的級別和信息字符串)
org.apache.log4j.TTCCLayout(包含日志產(chǎn)生的時間究反、線程慈参、類別等信息)

  1. 配置詳解

控制臺(console,常用)

log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.Threshold=DEBUG
log4j.appender.console.ImmediateFlush=true
log4j.appender.console.Target=System.err
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=[%-5p] %d(%r) --> [%t] %l: %m %x %n

日志文件(logFile)

log4j.appender.logFile=org.apache.log4j.FileAppender
log4j.appender.logFile.Threshold=DEBUG
log4j.appender.logFile.ImmediateFlush=true
log4j.appender.logFile.Append=true
log4j.appender.logFile.File=D:/logs/log.log4j
log4j.appender.logFile.layout=org.apache.log4j.PatternLayout
log4j.appender.logFile.layout.ConversionPattern=[%-5p] %d(%r) --> [%t] %l: %m %x %n

回滾文件(rollingFile)

log4j.appender.rollingFile=org.apache.log4j.RollingFileAppender
log4j.appender.rollingFile.Threshold=DEBUG
log4j.appender.rollingFile.ImmediateFlush=true
log4j.appender.rollingFile.Append=true
log4j.appender.rollingFile.File=D:/logs/log.log4j
log4j.appender.rollingFile.MaxFileSize=200KB
log4j.appender.rollingFile.MaxBackupIndex=50
log4j.appender.rollingFile.layout=org.apache.log4j.PatternLayout
log4j.appender.rollingFile.layout.ConversionPattern=[%-5p] %d(%r) --> [%t] %l: %m %x %n

定期回滾日志文件(dailyFile推沸,常用)

log4j.appender.dailyFile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.dailyFile.Threshold=DEBUG
log4j.appender.dailyFile.ImmediateFlush=true
log4j.appender.dailyFile.Append=true
log4j.appender.dailyFile.File=D:/logs/log.log4j
log4j.appender.dailyFile.DatePattern='.'yyyy-MM-dd
log4j.appender.dailyFile.layout=org.apache.log4j.PatternLayout
log4j.appender.dailyFile.layout.ConversionPattern=[%-5p] %d(%r) --> [%t] %l: %m %x %n

發(fā)送日志到指定郵件

log4j.appender.mail=org.apache.log4j.net.SMTPAppender
log4j.appender.mail.Threshold=FATAL
log4j.appender.mail.BufferSize=10
log4j.appender.mail.From = xxx@mail.com
log4j.appender.mail.SMTPHost=mail.com
log4j.appender.mail.Subject=Log4J Message
log4j.appender.mail.To= xxx@mail.com
log4j.appender.mail.layout=org.apache.log4j.PatternLayout
log4j.appender.mail.layout.ConversionPattern=[%-5p] %d(%r) --> [%t] %l: %m %x %n

應(yīng)用于數(shù)據(jù)庫

log4j.appender.database=org.apache.log4j.jdbc.JDBCAppender
log4j.appender.database.URL=jdbc:mysql://localhost:3306/test
log4j.appender.database.driver=com.mysql.jdbc.Driver
log4j.appender.database.user=root
log4j.appender.database.password=
log4j.appender.database.sql=INSERT INTO LOG4J (Message) VALUES('=[%-5p] %d(%r) --> [%t] %l: %m %x %n')
log4j.appender.database.layout=org.apache.log4j.PatternLayout
log4j.appender.database.layout.ConversionPattern=[%-5p] %d(%r) --> [%t] %l: %m %x %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=[%-5p] %d(%r) --> [%t] %l: %m %x %n

附錄

  1. ConversionPattern配置:
示例:log4j.appender.file.layout.ConversionPattern=[%-4r %-5p %d{yyyy/MM/dd HH\:mm\:ss\:SSS}][%C] %m%n

設(shè)定以怎樣的格式顯示消息:
%p:輸出日志信息的優(yōu)先級输枯,即DEBUG议泵,INFO,WARN桃熄,ERROR先口,F(xiàn)ATAL。
%d:輸出日志時間點的日期或時間瞳收,默認格式為ISO8601碉京,也可以在其后指定格式,如:%d{yyyy/MM/dd HH:mm:ss,SSS}螟深。
%r:輸出自應(yīng)用程序啟動到輸出該log信息耗費的毫秒數(shù)谐宙。
%t:輸出產(chǎn)生該日志事件的線程名。
%l:輸出日志事件的發(fā)生位置血崭,相當(dāng)于%c.%M(%F:%L)的組合卧惜,包括類全名、方法夹纫、文件名以及在代碼中的行數(shù)咽瓷。例如:test.TestLog4j.main(TestLog4j.java:10)。
%c:輸出日志信息所屬的類目舰讹,通常就是所在類的全名茅姜。

%M:輸出產(chǎn)生日志信息的方法名。
%F:輸出日志消息產(chǎn)生時所在的文件名稱。
%L::輸出代碼中的行號钻洒。
%m::輸出代碼中指定的具體日志信息奋姿。
%n:輸出一個回車換行符,Windows平臺為"rn"素标,Unix平臺為"n"称诗。
%x:輸出和當(dāng)前線程相關(guān)聯(lián)的NDC(嵌套診斷環(huán)境),尤其用到像java servlets這樣的多客戶多線程的應(yīng)用中头遭。
%%:輸出一個"%"字符寓免。
另外,還可以在%與格式字符之間加上修飾符來控制其最小長度计维、最大長度袜香、和文本的對齊方式。如:

  1. c:指定輸出category的名稱鲫惶,最小的長度是20蜈首,如果category的名稱長度小于20的話,默認的情況下右對齊欠母。
    2)%-20c:"-"號表示左對齊欢策。
    3)%.30c:指定輸出category的名稱,最大的長度是30艺蝴,如果category的名稱長度大于30的話猬腰,就會將左邊多出的字符截掉,但小于30的話也不會補空格猜敢。
  1. DatePattern說明
示例:log4j.appender.file.DatePattern='.'yyyy-MM-dd

DatePattern='.'yyyy-MM:每月滾動一次日志文件姑荷,即每月產(chǎn)生一個新的日志文件。當(dāng)前月的日志文件名為logging.log4j缩擂,前一個月的日志文件名為logging.log4j.yyyy-MM鼠冕。
另外,也可以指定按周胯盯、天懈费、時、分等來滾動日志文件博脑,對應(yīng)的格式如下:
1)'.'yyyy-MM:每月
2)'.'yyyy-ww:每周
3)'.'yyyy-MM-dd:每天
4)'.'yyyy-MM-dd-a:每天兩次
5)'.'yyyy-MM-dd-HH:每小時
6)'.'yyyy-MM-dd-HH-mm:每分鐘

  1. 重要說明:

1)憎乙、根logger和子logger的關(guān)系:子logger會輸出其父logger的appernder直到遇到log4j.additivity.org.apache=false
2)、顯示設(shè)置的日志級別是優(yōu)先級最高的級別
3)叉趣、按照類劃分日志

private static Log logger = LogFactory.getLog(Test.class);
log4j.logger.cn.com.Test= DEBUG, test

可以按照類進行對日志區(qū)分
4)按照appender劃分日志

private static Log logger1 = LogFactory.getLog("myTest1");
log4j.logger.myTest1= DEBUG, test1
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末泞边,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子疗杉,更是在濱河造成了極大的恐慌阵谚,老刑警劉巖,帶你破解...
    沈念sama閱讀 207,113評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異梢什,居然都是意外死亡奠蹬,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,644評論 2 381
  • 文/潘曉璐 我一進店門嗡午,熙熙樓的掌柜王于貴愁眉苦臉地迎上來囤躁,“玉大人,你說我怎么就攤上這事翼馆「钜裕” “怎么了金度?”我有些...
    開封第一講書人閱讀 153,340評論 0 344
  • 文/不壞的土叔 我叫張陵应媚,是天一觀的道長。 經(jīng)常有香客問我猜极,道長中姜,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,449評論 1 279
  • 正文 為了忘掉前任跟伏,我火速辦了婚禮丢胚,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘受扳。我一直安慰自己携龟,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 64,445評論 5 374
  • 文/花漫 我一把揭開白布勘高。 她就那樣靜靜地躺著峡蟋,像睡著了一般。 火紅的嫁衣襯著肌膚如雪华望。 梳的紋絲不亂的頭發(fā)上蕊蝗,一...
    開封第一講書人閱讀 49,166評論 1 284
  • 那天,我揣著相機與錄音赖舟,去河邊找鬼蓬戚。 笑死,一個胖子當(dāng)著我的面吹牛宾抓,可吹牛的內(nèi)容都是我干的子漩。 我是一名探鬼主播,決...
    沈念sama閱讀 38,442評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼石洗,長吁一口氣:“原來是場噩夢啊……” “哼幢泼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起劲腿,我...
    開封第一講書人閱讀 37,105評論 0 261
  • 序言:老撾萬榮一對情侶失蹤旭绒,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體挥吵,經(jīng)...
    沈念sama閱讀 43,601評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡重父,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,066評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了忽匈。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片房午。...
    茶點故事閱讀 38,161評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖丹允,靈堂內(nèi)的尸體忽然破棺而出郭厌,到底是詐尸還是另有隱情,我是刑警寧澤雕蔽,帶...
    沈念sama閱讀 33,792評論 4 323
  • 正文 年R本政府宣布折柠,位于F島的核電站,受9級特大地震影響批狐,放射性物質(zhì)發(fā)生泄漏扇售。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,351評論 3 307
  • 文/蒙蒙 一嚣艇、第九天 我趴在偏房一處隱蔽的房頂上張望承冰。 院中可真熱鬧,春花似錦食零、人聲如沸困乒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,352評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽娜搂。三九已至,卻和暖如春冈爹,著一層夾襖步出監(jiān)牢的瞬間涌攻,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,584評論 1 261
  • 我被黑心中介騙來泰國打工频伤, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留恳谎,地道東北人。 一個月前我還...
    沈念sama閱讀 45,618評論 2 355
  • 正文 我出身青樓憋肖,卻偏偏與公主長得像因痛,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子岸更,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,916評論 2 344

推薦閱讀更多精彩內(nèi)容

  • 在應(yīng)用程序中添加日志記錄總的來說基于三個目的:監(jiān)視代碼中變量的變化情況鸵膏,周期性的記錄到文件中供其他應(yīng)用進行統(tǒng)計分析...
    時待吾閱讀 4,953評論 1 13
  • 在應(yīng)用程序中添加日志記錄總的來說基于三個目的:監(jiān)視代碼中變量的變化情況,周期性的記錄到文件中供其他應(yīng)用進行統(tǒng)計分析...
    時待吾閱讀 4,966評論 0 6
  • 一怎炊、Log4j簡介 Log4j有三個主要的組件:Loggers(記錄器)谭企,Appenders (輸出源)和Layo...
    默默守護閱讀 1,899評論 2 8
  • from:https://www.cnblogs.com/ITtangtang/p/3926665.html一廓译、L...
    enshunyan閱讀 3,276評論 0 0
  • Log4J的配置文件(Configuration File)就是用來設(shè)置記錄器的級別、存放器和布局的债查,它可接key...
    Alex_1799閱讀 45,150評論 0 11