<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    beauty_beast

    上善若水 厚德載物

    背景:
           一般操作系統(tǒng)級的告警有相關(guān)的軟件,但我們應(yīng)用級日志往往無法統(tǒng)一監(jiān)控、分析。因為最近的項目是比較大的一個平臺,有七、八個子系統(tǒng),weblogic域也有三、四個。如果用戶自身能夠?qū)崟r監(jiān)控到應(yīng)用級致命異常日志 如OutOfMemory,線程掛死、應(yīng)用接口無法鏈接等等。那么我們監(jiān)控維護(hù)人員工作就大大簡化,不然要查看所有域的日志信息,只需集中看一處,系統(tǒng)故障也能夠更快的解決,恢復(fù)正常。
           用戶的需求是要求我們將日志輸出到一個第三方廠家的日志Server。

    設(shè)想:
            weblogic platform域的日志輸出是可配置的,在$bea/weblogic/common/lib/workshopLogCfg.xml, 原先的一個項目所有的日志輸出均在此文件中配置。其他中間件本人很少使用,相信也有類似的功能,log4j日志框架支持統(tǒng)一日志管理功能,簡單實現(xiàn)原理(啟動一個SocketServer,處理各個客戶端機器連接的Socket輸入,
    而每個應(yīng)用打印日志使用Socket方式將日志內(nèi)容輸出到SocketServer端)。如果能將重要的的中間件異常日志以及應(yīng)用異常日志到統(tǒng)一日志服務(wù)器,實時分析,這樣就方便日常監(jiān)控,有點類似于設(shè)備告警的功能,如果再開發(fā)出相關(guān)日志分析軟件,個人覺得會是平臺級產(chǎn)品的一個亮點,正如《少林足球》說的有點搞頭。

    實踐:
        實踐證明現(xiàn)實和理想總歸有一定的差距,呵呵。下面描述驗證、學(xué)習(xí)心得:
        首先描述log4j是如何實現(xiàn)統(tǒng)一日志管理該功能的。
        核心類:
        一、org.apache.log4j.net.SocketServer 
        主要功能:
                          1、啟動SocketServer
                          2、接受Socket請求
                          3、初始化對應(yīng)Socket的日志輸出配置,如沒有,就采用通用配置
                          4、另啟線程處理客戶端Socket和服務(wù)端交互
        一個比較標(biāo)準(zhǔn)的多線程處理實現(xiàn)。
         啟動Server需要有三個運行參數(shù):端口號、log4j配置文件、客戶端日志在Server端輸出配置文件目錄
         運行命令如下:
                         java -classpath ../lib/log4j-1.2.8.jar;.; test.logserver.FixSocketServer   8088   server.properties  d:/temp
         說明:
                  a、客戶端日志在Server端輸出配置文件命名規(guī)則 $ip.lcf ,    如 10.21.11.10.lcf  
                            該類在解析該配置文件的代碼中 應(yīng)該存在個bug(版本1.2.9)
                                               代碼176 行   String key = s.substring(0,i);改為:   String key = s.substring(i+1);
                  b、配置文件內(nèi)容和一般log4j配置內(nèi)容雷同,categories、appenders、layouts 
         二、org.apache.log4j.net.SocketAppender
                 該類繼承于AppenderSkeleton,如果我們需要自定義Appender,可以繼承AppenderSkeleton類,實現(xiàn)方法:

    protected  void append(LoggingEvent event);

        主要功能: 
                         1、連接到SocketServer,并創(chuàng)建一個到SocketServer的對象輸出實例
                         2、如果連接失敗,會啟動一個守護(hù)線程,每隔三十秒鐘重新連接
                         3、日志輸出時,將日志事件對象輸出到SocketServer
         相對應(yīng)的日志配置:
            

    log4j.appender.mysocket=test.logserver.SocketAppender 
    log4j.appender.mysocket.RemoteHost
    =10.243.17.85 
    log4j.appender.mysocket.Port
    =8088 
    log4j.appender.mysocket.LocationInfo
    =true 
    log4j.appender.mysocket.layout
    =org.apache.log4j.PatternLayout 
    log4j.appender.myConsole.layout.ConversionPattern
    =%5p [%t] (%F:%L) - %m%n


          三、org.apache.log4j.net.SocketNode
                  該類相對簡單,一個線程類
         主要功能:
                         負(fù)責(zé)接收客戶端對應(yīng)輸出對象,根據(jù)對應(yīng)的配置,輸出相關(guān)日志。

          可以看出是通過對象進(jìn)行傳輸?shù)模绻谌讲皇遣捎胘ava語言的,實際解決時只需改寫SocketAppender的append方法,輸出日志內(nèi)容就可。對方實現(xiàn)SocketServer功能就可(編程語言基本都支持該功能)。

           遺憾的是在weblogic 一般server域中我沒有找到可以改變?nèi)罩据敵龅牡胤剑ㄉ洗慰吹絯eblogic9.0中有日志服務(wù),不知道能不能改變),所以實際差距還是比較大的,關(guān)于性能問題,因為是重要的日志(warning、error、fetal)才輸出,采用socket方式問題應(yīng)該不大。

    篇外話:               
               查看代碼中無意中發(fā)現(xiàn)log4j框架一部分源碼都是一些人捐獻(xiàn)的。雖然代碼不復(fù)雜,但感覺為自己喜歡的框架很熱心,希望它變的越來越好,真的希望我們國內(nèi)也能有一些優(yōu)秀的開源項目,并且大家都去支持它,發(fā)展它。
               實際我在項目中使用log4j使用的都是一些基本功能,對它的設(shè)計、結(jié)構(gòu)不是很清楚,誰有相關(guān)學(xué)習(xí)文檔,請給我一份,不甚感激(使用手冊已有)。



       
                                               

    Feedback

    # re: 基于log4j實現(xiàn)統(tǒng)一日志管理  回復(fù)  更多評論   

    2013-01-20 20:31 by BadMan03
    請問 log4j SocketAppender 連服務(wù)端是短連接還是長連接?如果是長連接,誰在維護(hù)這個連接呢?

    比如多線程業(yè)務(wù)處理時,業(yè)務(wù)線程里用log4j打日志,打完就釋放了,那log4j SocketAppender 的連接還在?如果不在的話,豈不是每筆業(yè)務(wù)調(diào)用都要連一下服務(wù)端,會導(dǎo)致兩個問題:
    1)頻繁的連接導(dǎo)致業(yè)務(wù)性能下降,尤其是并發(fā)量大的系統(tǒng),不可接受
    2)會導(dǎo)致socket耗盡

    大蝦給詳細(xì)說明一下呢
    主站蜘蛛池模板: 亚欧人成精品免费观看| 一个人看的免费观看日本视频www| 野花香高清视频在线观看免费| 精品日韩亚洲AV无码一区二区三区| 美景之屋4在线未删减免费| 成人免费淫片在线费观看 | 亚洲国产精品SSS在线观看AV| 一级黄色片免费观看| 免费播放特黄特色毛片| 美女羞羞喷液视频免费| www.亚洲精品.com| 中文字幕免费播放| 亚洲第一区香蕉_国产a| 亚州免费一级毛片| 亚洲欧美日韩一区二区三区在线| 国产成人高清精品免费鸭子 | 免费看成人AA片无码视频羞羞网| 亚洲无线一二三四区| 毛片免费观看网站| 美女免费精品高清毛片在线视| 亚洲性在线看高清h片| 免费国产成人午夜在线观看| 亚洲色图古典武侠| 日韩视频免费一区二区三区| 男人j进女人p免费视频| 亚洲色欲色欲www在线丝| 免费能直接在线观看黄的视频| 亚洲国产成人久久精品大牛影视| 亚洲av成人一区二区三区在线观看| 国产免费一区二区三区不卡| 亚洲毛片基地日韩毛片基地| 国产午夜无码视频免费网站| 国产午夜精品久久久久免费视 | 在线免费不卡视频| WWW国产成人免费观看视频| 亚洲影院在线观看| 成人毛片18女人毛片免费视频未 | 免费播放美女一级毛片| 亚洲av无码一区二区三区乱子伦 | 国产麻豆视频免费观看| 一级成人a免费视频|