Java日志:Log4j

為啥叫Log4j?

Log4j就是log for java。是針對(duì)Java語(yǔ)言輸出日志的工具,夠見名知意吧?

Log4j干嘛的?

記錄日志
為啥要記錄日志?
為了記錄便于分析。直接打印到控制臺(tái)實(shí)在太low。

Log4j使用須知

要導(dǎo)包,jar文件,不導(dǎo)包玩?zhèn)€錘子

Log4j配置文件講解

java配置文件采用key = value的方式存儲(chǔ)配置

實(shí)例配置文件:

log4j.rootLogger = debug,C,D,E

log4j.appender.C = org.apache.log4j.ConsoleAppender
log4j.appender.C.Target = System.out
log4j.appender.C.layout = org.apache.log4j.PatternLayout
log4j.appender.C.layout.ConversionPattern = [%5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n

log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = /home/soft01/log4j/debug.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = debug 
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File = /home/soft01/log4j/error.log
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR 
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

講解:

  • rootLogger:
  • debug: LEVEL日志記錄的優(yōu)先級(jí)
  • C,D,E:目的地,表示日志會(huì)輸出到這CDE這3個(gè)地方

配置信息輸出方式:

  • org.apache.log4j.ConsoleAppender:輸出到控制臺(tái)
  • org.apache.log4j.FileAppender:輸出到文件,且每天產(chǎn)生一個(gè)新文件
  • org.apache.log4j.DailyRollingFileAppender:輸出到文件,且每天產(chǎn)生一個(gè)新文件
  • org.apache.log4j.RollingFileAppender:輸出到文件,且當(dāng)文件達(dá)到一定大小產(chǎn)生一個(gè)新文件

log4j.appender.C.Target:發(fā)送的目的地:

  • System.out:發(fā)送到控制臺(tái)標(biāo)準(zhǔn)流
  • log4j.appender.D.File:發(fā)送到指定的文件中

log4j.appender.E.Append:文件追加方式

  • true:追加
  • false:覆蓋

log4j.appender.E.Threshold:指定消息輸出的最低層次

  • debug
  • ERROR

log4j.appender.E.layout:設(shè)置顯示樣式

  • org.apache.log4j.PatternLayout:自定義模式
  • HtmlLayout:HTML表格形式
  • SimpleLayout:包含日志級(jí)別、信息的簡(jiǎn)單模式
  • TTCClayout:包含日志時(shí)間、線程、類別的信息

log4j.appender.E.layout.ConversionPattern:設(shè)置顯示樣式

  1. [%5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
  2. %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
  3. %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
  • %5p:p表示優(yōu)先級(jí),5表示輸出寬度不夠5位用空格補(bǔ),補(bǔ)在p前(右對(duì)齊)
  • %d:時(shí)間格式表示后面會(huì)輸出時(shí)間,
  • %-d:左對(duì)齊,
  • %n:換行
  • %t:表示輸出產(chǎn)生該日志事件的線程名
  • %i:輸出日志事件的發(fā)生位置,相當(dāng)于%C.%M(%F:%L)的組合,包括類目名、發(fā)生的線程,以及在代碼中的行數(shù)

Log4j如何使用

  1. 準(zhǔn)備好配置文件
    將配置文件log4j.properties放入src文件夾中,編譯時(shí)可以自動(dòng)移植(找到對(duì)應(yīng)字節(jié)碼文件路徑)。
  2. 獲得日志對(duì)象
    Logger log = Logger.getLogger(類名.class);
  3. 調(diào)用對(duì)應(yīng)等級(jí)的方法。如debug
    logger.debug("干debug");

完整實(shí)例代碼:


日志實(shí)例
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 在應(yīng)用程序中添加日志記錄總的來(lái)說(shuō)基于三個(gè)目的:監(jiān)視代碼中變量的變化情況,周期性的記錄到文件中供其他應(yīng)用進(jìn)行統(tǒng)計(jì)分析...
    時(shí)待吾閱讀 5,240評(píng)論 1 13
  • 在應(yīng)用程序中添加日志記錄總的來(lái)說(shuō)基于三個(gè)目的:監(jiān)視代碼中變量的變化情況,周期性的記錄到文件中供其他應(yīng)用進(jìn)行統(tǒng)計(jì)分析...
    時(shí)待吾閱讀 5,162評(píng)論 0 6
  • from:https://www.cnblogs.com/ITtangtang/p/3926665.html一、L...
    enshunyan閱讀 3,421評(píng)論 0 0
  • 一、Log4j簡(jiǎn)介 Log4j有三個(gè)主要的組件:Loggers(記錄器),Appenders (輸出源)和Layo...
    默默守護(hù)閱讀 1,983評(píng)論 2 8
  • 親子日記第八十篇 星期一 多云 佳昊今天和他爸去利津,下午趕回來(lái)的時(shí)候正好兩點(diǎn)半,急匆匆地又送去學(xué)口才。 ...
    葉落悠悠閱讀 112評(píng)論 0 0

友情鏈接更多精彩內(nèi)容