如鵬網(wǎng) 大學(xué)生計算機(jī)學(xué)習(xí)社區(qū)

          CowNew開源團(tuán)隊(duì)

          http://www.cownew.com 郵件請聯(lián)系 about521 at 163.com

            BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
            363 隨筆 :: 2 文章 :: 808 評論 :: 0 Trackbacks

          Log4j (http://logging.apache.org/log4j/docs)是一個開源代碼的項(xiàng)目(Open source project),它使開發(fā)人員能最大限度的靈活控制程序調(diào)試信息的輸出,這一點(diǎn)它是通過額外的配置文件實(shí)現(xiàn)的。

          JDBMonitor(

          共同點(diǎn):

          1、Log4j和JDBMonitor都有很強(qiáng)的可擴(kuò)展性,例如Log4j可以寫自己的Appender,JDBMonitor可以寫自己的DBListener。

          2、Log4j和JDBMonitor都很容易配置。當(dāng)然Log4j配置文件相對復(fù)雜。

          不同點(diǎn):

          1、Log4j能為各種事件進(jìn)行日志輸出,比如關(guān)鍵操作,運(yùn)行中的變量值、數(shù)據(jù)庫語句日志等。而JDBMonitor只能記錄數(shù)據(jù)庫sql語句操作記錄。所以說Log4j應(yīng)用范圍更廣,如果您需要記錄非數(shù)據(jù)庫語句日志就要使用Log4j,JDBMonitor則無能為力。

          2、Log4j配置比較靈活,比如可以配置什么等級的日志被記錄,記錄的格式是什么樣的,日志文件到多大的時候被轉(zhuǎn)儲;而JDBMonitor則相對較不靈活,輸出格式比較單一、而且無法指定那些日志可以被忽略。

          3、Log4j是侵入式的,所有的日志操作都是寫在業(yè)務(wù)代碼之中的,缺點(diǎn)是很明顯的,這導(dǎo)致業(yè)務(wù)代碼中摻雜大量的日志輸出代碼,降低了代碼的可讀性,而且一旦想去掉日志功能以后必須逐個刪除代碼,加大了工作量和風(fēng)險。JDBMonitor是非侵入式的,它采用代理模式攔截對數(shù)據(jù)庫的調(diào)用,然后對進(jìn)行日志記錄,業(yè)務(wù)系統(tǒng)中根本不用摻雜日志代碼。只要修改JDBC連接字符串即可,如果想去掉日志功能,只要將JDBC連接字符串修改回去即可。

          4、Log4j采用的日志記錄實(shí)現(xiàn)方式會對程序的運(yùn)行速度有一定影響,在日志比較多的時候,甚至?xí)?dǎo)致整個程序慢到無法忍受。而JDBMonitor則另起一個線程來記錄SQL,所以它幾乎不會對程序運(yùn)行速度有任何影響。

          5、Log4j的Appender不適合進(jìn)行調(diào)試開發(fā),調(diào)試開發(fā)只有那個控制臺Appender可以用,但是在大數(shù)據(jù)量的時候整個屏幕狂刷不止,根本看不清,而且很多操作系統(tǒng)的控制臺(比如windows的)都有緩沖區(qū)大小限制,所以很容易造成想看的sql日志被沖掉看不到了。而Log4j的不僅有與Log4j類似的控制臺Appender可以用,而且有一個客戶端SocketSwingClient可以用,這個客戶端類似SQLServer的事件監(jiān)聽器,容納的日志量相當(dāng)大,而且可以自由控制日志的上下滾動。


          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 清水县| 博客| 灵石县| 资阳市| 股票| 偃师市| 锦州市| 澄江县| 横峰县| 吴忠市| 含山县| 德钦县| 扎赉特旗| 郯城县| 徐闻县| 鲁甸县| 湖南省| 西贡区| 那曲县| 德江县| 新兴县| 金华市| 依安县| 日土县| 旌德县| 板桥市| 大新县| 杨浦区| 安宁市| 淮南市| 临潭县| 萝北县| 新乡市| 新源县| 资阳市| 中宁县| 长海县| 诸城市| 高州市| 临桂县| 怀化市|