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

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

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

    zyskm用夢(mèng)想丈量人生,用奔跑丈量激情

    集群環(huán)境下log4j日志文件命名方式

        在項(xiàng)目中,通過(guò)log4j可以實(shí)現(xiàn)對(duì)不同模塊不同級(jí)別日志輸出到不同的日志文件中。
    以xml格式為例:
    <appender name="FILE_INFO" class="org.apache.log4j.RollingFileAppender">
        
    <param name="File" value="/usr/local/logs/xxx_info.log"/>
        
    <layout class="org.apache.log4j.PatternLayout">
            
    <param name="ConversionPattern" value="%d %p [%c] [%M]:%L - %m%n"/>
        
    </layout>
        
    <filter class="org.apache.log4j.varia.LevelRangeFilter">
            
    <param name="levelMin" value="INFO" />
            
    <param name="levelMax" value="INFO" />
            
    <param name="AcceptOnMatch" value="true" />
        
    </filter>
    </appender>
    按這種方式在單機(jī)環(huán)境下可以很方便的查詢?nèi)罩尽?br />但是在集群環(huán)境下,因?yàn)轫?xiàng)目同時(shí)部署在多個(gè)機(jī)器上,log4j生成的日志文件在每臺(tái)機(jī)器上都叫xxx_info.log,在開發(fā)維護(hù)的過(guò)程中很難區(qū)分那個(gè)文件是哪臺(tái)服務(wù)上的,尤其在日志查詢比較頻繁的情況下做區(qū)分有一定的工作量。
        為解決這一問(wèn)題,可以在生成日志文件時(shí)增加機(jī)器標(biāo)識(shí)。如100_xxx_info.log,標(biāo)識(shí)ip為172.20.80.100這臺(tái)機(jī)器上的。
    實(shí)現(xiàn)這一功能需要對(duì)log4j的Appender做些改動(dòng)。
    通過(guò)查看log4j源碼可以看出來(lái)所有的文件輸出都會(huì)繼承FileAppender ,修改setFile(String file)方法即可實(shí)現(xiàn)。
    重寫DailyRollingFileAppender,改繼承重寫后的fileappender。
    /** 從配置文件讀取日志文件名 */
        
    public void setFile(String file) {
            String val 
    = file.trim();
            
    int index = val.lastIndexOf('/'+ 1;
            String path 
    = val.substring(0, index);
            String name 
    = val.substring(index);
            fileName 
    = path + getIpSuffix() + "_" + name;
        }


        
    // 獲取本機(jī)ip最后一位(雙網(wǎng)卡內(nèi)網(wǎng)ip)
        private String getIpSuffix() {
            String ip 
    = null;
            String suffix 
    = "";
            NetworkInterface ni;
            
    try {
                ni 
    = NetworkInterface.getByName("eth1");
                
    if (ni == null)
                    ni 
    = NetworkInterface.getByName("eth0");
                Enumeration
    <InetAddress> ias = ni.getInetAddresses();
                
    for (; ias.hasMoreElements();) {
                    InetAddress ia 
    = ias.nextElement();
                    
    if (ia instanceof InetAddress) {
                        ip 
    = ia.getHostAddress();
                    }

                }

                
    if (ip == null{
                    InetAddress addr 
    = InetAddress.getLocalHost();
                    ip 
    = addr.getHostAddress();
                }

            }
     catch (SocketException e1) {
                e1.printStackTrace();
            }
     catch (UnknownHostException e) {
                e.printStackTrace();
            }

            
    if (ip != null{
                
    int index = ip.lastIndexOf('.'+ 1;
                suffix 
    = ip.substring(index);
            }

            
    return suffix;
        }


    posted on 2011-10-24 15:33 zyskm 閱讀(3421) 評(píng)論(6)  編輯  收藏

    評(píng)論

    # re: 集群環(huán)境下log4j日志文件命名方式 2011-10-25 08:23 tbw淘寶

    很不錯(cuò)啊   回復(fù)  更多評(píng)論   

    # re: 集群環(huán)境下log4j日志文件命名方式 2011-12-09 00:37 萍水相逢

    方法不錯(cuò),不過(guò)我覺得不是必要要這樣子做。  回復(fù)  更多評(píng)論   

    # re: 集群環(huán)境下log4j日志文件命名方式 2011-12-09 09:47 zyskm

    哦,這是我們運(yùn)營(yíng)提出來(lái)的,認(rèn)為不做區(qū)分的話不便于日志查詢,不知道你怎么做的?@萍水相逢
      回復(fù)  更多評(píng)論   

    # re: 集群環(huán)境下log4j日志文件命名方式 2011-12-17 13:50 萍水相逢

    日志這個(gè)東西,一是寫一些有用的東西。二是每天一個(gè)(bakcup/housekeeping),每臺(tái)server一個(gè),要查的話還要每臺(tái)server去看。所以我認(rèn)為日志最多有個(gè)日期就得了。rename的工作在backup, 和當(dāng)你要下載的時(shí)候做。這樣會(huì)方便很多。  回復(fù)  更多評(píng)論   

    # re: 集群環(huán)境下log4j日志文件命名方式 2011-12-19 13:21 zyskm

    運(yùn)營(yíng)環(huán)境的服務(wù)器一般開發(fā)人員是沒有訪問(wèn)權(quán)限的,需要運(yùn)營(yíng)下載轉(zhuǎn)發(fā),沒有專用下載工具的話,只是用ftp下載,命名工作還是在一開始做好。@萍水相逢
      回復(fù)  更多評(píng)論   

    # re: 集群環(huán)境下log4j日志文件命名方式 2012-02-03 09:49 yan_dk

    好,思路不錯(cuò),學(xué)習(xí)了。  回復(fù)  更多評(píng)論   


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


    網(wǎng)站導(dǎo)航:
     
    主站蜘蛛池模板: 亚洲国产一区视频| 亚洲香蕉久久一区二区三区四区| 免费网站观看WWW在线观看| 亚洲嫩草影院久久精品| 噜噜嘿在线视频免费观看| 成人福利在线观看免费视频| 亚洲动漫精品无码av天堂| 一二三四免费观看在线电影| 一级a性色生活片久久无少妇一级婬片免费放 | 一区二区三区四区免费视频| 久久久久精品国产亚洲AV无码| www亚洲一级视频com| 24小时免费看片| 一级毛片成人免费看a| 亚洲国产成人久久77| 中文字幕亚洲综合久久男男| 一个人免费高清在线观看| 羞羞视频免费网站在线看| 中文字幕 亚洲 有码 在线| 亚洲无线码一区二区三区| 在线jyzzjyzz免费视频| 亚欧日韩毛片在线看免费网站| 羞羞的视频在线免费观看| 亚洲白色白色永久观看| 一级毛片免费播放试看60分钟| 老汉色老汉首页a亚洲| 亚洲综合色视频在线观看| 成年女人毛片免费观看97| 香蕉成人免费看片视频app下载| 蜜桃传媒一区二区亚洲AV | 中文字幕亚洲第一在线| 亚洲人成无码久久电影网站| 国产免费AV片在线播放唯爱网| 怡红院免费的全部视频| 特黄特色大片免费| 亚洲中文无码卡通动漫野外| 亚洲宅男永久在线| 亚洲高清国产拍精品26U| 亚洲人成网站18禁止一区| 国产精品无码素人福利免费 | 亚洲AⅤ永久无码精品AA|