Log4J

概述

一般的系統(tǒng)對(duì)程序的調(diào)試信息只進(jìn)行了簡(jiǎn)單的粗放處理呢蔫,將這些信息直接用System.out.println()語(yǔ)句輸出到控制臺(tái)中。由于在調(diào)度過(guò)程中程序員為了能夠跟蹤程序的運(yùn)行情況往往將大量信息輸出到控制臺(tái)振亮,而在調(diào)度成功后沒(méi)有相應(yīng)地將這些信息屏蔽掉抄瑟,在程序部署運(yùn)行后如绸,往往一個(gè)簡(jiǎn)單的業(yè)務(wù)功能調(diào)用也會(huì)輸出大容量的過(guò)程調(diào)度信息黍匾,一方面造成了大量IO的讀寫,占用硬盤空間现喳,另一方面則因?yàn)槿罩玖看罂粒茈y查找到運(yùn)行期有用的日志信息。
程序異常嗦篱,資源釋放操作失敗這些信息是發(fā)現(xiàn)程序問(wèn)題冰单,定位出錯(cuò)點(diǎn)的信息依據(jù),得不到這些信息將導(dǎo)致程序錯(cuò)誤被屏蔽灸促,要想使問(wèn)題浮出水面程序必須能夠提供詳細(xì)而簡(jiǎn)潔的日志信息诫欠。
log4J是為java語(yǔ)言量身定做的一個(gè)日志模塊,用統(tǒng)一的接口寫日志浴栽,通過(guò)配置文件信息控制日志信息的輸出格式荒叼、目的及輸出級(jí)別(指定輸出級(jí)別后,只有比輸出級(jí)別更高的日志會(huì)被輸出)典鸡”焕可以在不更改程序輸出日志的情況下方便日志輸出的控制,為日志的操作提供了很大的靈活性萝玷。

log4J的基本操作

寫日志的API

log4J將日志分為5個(gè)級(jí)別嫁乘,從低到高分別是DEBUG,INFO,WARN,ERROR,FATAL,相應(yīng)地log4J為記錄這5個(gè)級(jí)別提供了5個(gè)方法,它們分別是:
public void debug(Object obj)
public void info(Object obj)
public void warn(Object obj)
public void error(Object obj)
public void fatal(Object obj)
同時(shí)每個(gè)方法還對(duì)應(yīng)一個(gè)帶Throwable入?yún)⒌闹剌d函數(shù),用于將異常一并記錄到日志中:
public void debug(Object obj,Throwable ex)
public void info(Object obj,Throwable ex)
public void warn(Object obj,Throwable ex)
public void error(Object obj,Throwable ex)
public void fatal(Object obj,Throwable ex)
5個(gè)級(jí)別記錄信息的重要性依次提升球碉,下面就每個(gè)記錄方法對(duì)應(yīng)的應(yīng)用場(chǎng)合舉例如下:

寫日志API的使用示例
 在程序中如何恰當(dāng)級(jí)別的日志記錄API記錄日志信息是非常重要的亦渗,一般的我們將信息以其重要性調(diào)用將其劃分為5個(gè)級(jí)別,分別調(diào)用相應(yīng)的API來(lái)記錄汁尺,我們以一個(gè)查詢數(shù)據(jù)庫(kù)的代碼段來(lái)說(shuō)明各級(jí)別的劃分:
Connection conn = null;
String sqlStr = “select * from table1 where a=’”+a+”’”;
//測(cè)試變量是否正確,在調(diào)度時(shí)查看多律,以后不會(huì)用
logger.debug(“sqlStr字串為:”+sqlStr);
try{
    conn = DBBean.getConnection();
    Statement stat = conn.createStatement();
    ResultSet rs = stat.executeQuery(sqlStr);
    if(rs.next()){
        logger.info(“有記錄”);
        //查看程序運(yùn)行中的信息痴突,反映程序及配置信息的情況
    }else{
        logger.warn(“因配置要求至少要有一條記錄,請(qǐng)核對(duì)配置信息狼荞×勺埃”);
        //假設(shè)配置信息要求一條配置記錄,當(dāng)找不到記錄時(shí)應(yīng)該警告相味,
        //以并更改配置
    }
}catch(SQLException e){
         logger.error(“數(shù)據(jù)查詢時(shí)發(fā)生異呈盎”,e);
         //發(fā)生了查詢異常,可能是sqlStr語(yǔ)句的語(yǔ)法錯(cuò)誤造成的
}finally{
    try{
        if(conn != null){
            conn.close();
            conn = null;
        }  
    }catch(SQLException e){
        logger.warn(“數(shù)據(jù)連接無(wú)法關(guān)閉,連接將無(wú)法釋放”,e);
        //數(shù)據(jù)連接無(wú)法關(guān)閉將導(dǎo)致資源泄漏拓巧,可能是系統(tǒng)原因產(chǎn)生的
        //如果持續(xù)產(chǎn)生這個(gè)問(wèn)題斯碌,開(kāi)發(fā)人員需要查明原因,
        //否則系統(tǒng)將因數(shù)據(jù)連接資源無(wú)法釋放而崩潰
    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末肛度,一起剝皮案震驚了整個(gè)濱河市傻唾,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌承耿,老刑警劉巖冠骄,帶你破解...
    沈念sama閱讀 222,865評(píng)論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異加袋,居然都是意外死亡凛辣,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,296評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門职烧,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)扁誓,“玉大人,你說(shuō)我怎么就攤上這事阳堕“侠恚” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 169,631評(píng)論 0 364
  • 文/不壞的土叔 我叫張陵恬总,是天一觀的道長(zhǎng)前普。 經(jīng)常有香客問(wèn)我,道長(zhǎng)壹堰,這世上最難降的妖魔是什么拭卿? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 60,199評(píng)論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮贱纠,結(jié)果婚禮上峻厚,老公的妹妹穿的比我還像新娘。我一直安慰自己谆焊,他們只是感情好惠桃,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,196評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著辖试,像睡著了一般辜王。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上罐孝,一...
    開(kāi)封第一講書(shū)人閱讀 52,793評(píng)論 1 314
  • 那天呐馆,我揣著相機(jī)與錄音,去河邊找鬼莲兢。 笑死汹来,一個(gè)胖子當(dāng)著我的面吹牛续膳,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播收班,決...
    沈念sama閱讀 41,221評(píng)論 3 423
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼坟岔,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了闺阱?” 一聲冷哼從身側(cè)響起炮车,我...
    開(kāi)封第一講書(shū)人閱讀 40,174評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎酣溃,沒(méi)想到半個(gè)月后瘦穆,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,699評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡赊豌,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,770評(píng)論 3 343
  • 正文 我和宋清朗相戀三年扛或,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片碘饼。...
    茶點(diǎn)故事閱讀 40,918評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡熙兔,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出艾恼,到底是詐尸還是另有隱情住涉,我是刑警寧澤,帶...
    沈念sama閱讀 36,573評(píng)論 5 351
  • 正文 年R本政府宣布钠绍,位于F島的核電站舆声,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏柳爽。R本人自食惡果不足惜媳握,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,255評(píng)論 3 336
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望磷脯。 院中可真熱鬧蛾找,春花似錦、人聲如沸赵誓。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,749評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)俩功。三九已至隘冲,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間绑雄,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,862評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工奥邮, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留万牺,地道東北人罗珍。 一個(gè)月前我還...
    沈念sama閱讀 49,364評(píng)論 3 379
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像脚粟,于是被迫代替她去往敵國(guó)和親覆旱。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,926評(píng)論 2 361

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

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理核无,服務(wù)發(fā)現(xiàn)扣唱,斷路器,智...
    卡卡羅2017閱讀 134,719評(píng)論 18 139
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語(yǔ)法团南,類相關(guān)的語(yǔ)法噪沙,內(nèi)部類的語(yǔ)法,繼承相關(guān)的語(yǔ)法吐根,異常的語(yǔ)法正歼,線程的語(yǔ)...
    子非魚(yú)_t_閱讀 31,668評(píng)論 18 399
  • 在應(yīng)用程序中添加日志記錄總的來(lái)說(shuō)基于三個(gè)目的:監(jiān)視代碼中變量的變化情況,周期性的記錄到文件中供其他應(yīng)用進(jìn)行統(tǒng)計(jì)分析...
    時(shí)待吾閱讀 4,991評(píng)論 0 6
  • 在應(yīng)用程序中添加日志記錄總的來(lái)說(shuō)基于三個(gè)目的:監(jiān)視代碼中變量的變化情況拷橘,周期性的記錄到文件中供其他應(yīng)用進(jìn)行統(tǒng)計(jì)分析...
    時(shí)待吾閱讀 5,057評(píng)論 1 13
  • 大家好局义,我是IT修真院深圳分院第01期學(xué)員,一枚正直純潔善良的web程序員冗疮。 今天給大家分享一下萄唇,修真院官網(wǎng)JAV...
    老菜菜閱讀 610評(píng)論 0 0