走自己的路

          路漫漫其修遠(yuǎn)兮,吾將上下而求索

            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            50 隨筆 :: 4 文章 :: 118 評(píng)論 :: 0 Trackbacks
           
          1. Log4j debug log api不夠豐富

          在進(jìn)入,退出方法時(shí)針對(duì)方法的輸入?yún)?shù)和返回值進(jìn)行l(wèi)og,log中含有方法信息

          logDebugOnMethodEntry, logDebugOnMethodExit

          1. log級(jí)別問(wèn)題

          如果log級(jí)別設(shè)置的是info,會(huì)把warning,error,fatal都打出來(lái),各個(gè)級(jí)別不能單獨(dú)控制。增加各級(jí)別分開(kāi)控制開(kāi)關(guān)。

          1. log格式的定制

          可以定制log信息的pattern,這樣會(huì)看起來(lái)很統(tǒng)一,log分析起來(lái)也容易logDebug(String pattern, Object... paramValues);

          還有一個(gè)好處,不需要預(yù)先把相關(guān)String都append起來(lái),提高performance

          1. log.isDebugEnabled();

          參考第三點(diǎn),這樣就避免了Object的toString和String的concat操作。

          1. EmptyLogger

          每次記log時(shí),log4j都需要判斷這個(gè)級(jí)別是否可以打log。如果logger的每個(gè)級(jí)別都有對(duì)應(yīng)的logger實(shí)例,如果debug level被關(guān)了,debug級(jí)別對(duì)應(yīng)的實(shí)例就是EmptyLogger,EmptyLogger里面所有方法的實(shí)現(xiàn)都是空的,就不需要這額外的判斷了。




          posted on 2009-12-25 15:09 叱咤紅人 閱讀(2858) 評(píng)論(2)  編輯  收藏 所屬分類(lèi): Design and Analysis Pattern J2SE and JVM

          評(píng)論

          # re: 對(duì)Log4j封裝的一些想法[未登錄](méi) 2009-12-26 09:15 aaa
          關(guān)于isDebugEnabled,你就算實(shí)現(xiàn)了一個(gè)空的EmptyLogger也沒(méi)有用吧。
          我記得寫(xiě)log.isDebugEnabled是為了防止某些字符串拼接的開(kāi)銷(xiāo)。
          比如log.debug(xxx+xxx+xxx);  回復(fù)  更多評(píng)論
            

          # re: 對(duì)Log4j封裝的一些想法 2009-12-27 09:47 叱咤紅人
          @aaa
          是的,是我記混了。我們公司有一個(gè)log framework對(duì)Log4J做了一層封裝,把log的方法的參數(shù)都改成String了,但還有一些提供的方法,會(huì)把object都toString后再調(diào)用那些封裝過(guò)的參數(shù)為String的log方法,所以出現(xiàn)了預(yù)先toString的情況。于是我們?cè)趯?xiě)的時(shí)候也需要isDebugEnabled。沒(méi)有和log4j的區(qū)分清楚,已經(jīng)改正,您說(shuō)的是我說(shuō)的第四點(diǎn),現(xiàn)在的第三點(diǎn),恩,謝謝提醒。

            回復(fù)  更多評(píng)論
            

          主站蜘蛛池模板: 和平区| 曲沃县| 富裕县| 随州市| 米易县| 诏安县| 望都县| 夏津县| 方城县| 罗山县| 略阳县| 保康县| 海宁市| 金山区| 西吉县| 水城县| 广宁县| 铜山县| 保亭| 博爱县| 大同县| 徐闻县| 盖州市| 阳山县| 靖边县| 灵丘县| 桐城市| 仁布县| 石嘴山市| 杭州市| 永定县| 镇康县| 丹寨县| 达孜县| 连平县| 章丘市| 页游| 青海省| 安福县| 大同市| 班玛县|