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

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

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

    zyskm用夢想丈量人生,用奔跑丈量激情

    集群環境下log4j日志文件命名方式

        在項目中,通過log4j可以實現對不同模塊不同級別日志輸出到不同的日志文件中。
    以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>
    按這種方式在單機環境下可以很方便的查詢日志。
    但是在集群環境下,因為項目同時部署在多個機器上,log4j生成的日志文件在每臺機器上都叫xxx_info.log,在開發維護的過程中很難區分那個文件是哪臺服務上的,尤其在日志查詢比較頻繁的情況下做區分有一定的工作量。
        為解決這一問題,可以在生成日志文件時增加機器標識。如100_xxx_info.log,標識ip為172.20.80.100這臺機器上的。
    實現這一功能需要對log4j的Appender做些改動。
    通過查看log4j源碼可以看出來所有的文件輸出都會繼承FileAppender ,修改setFile(String file)方法即可實現。
    重寫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;
        }


        
    // 獲取本機ip最后一位(雙網卡內網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 閱讀(3424) 評論(6)  編輯  收藏

    評論

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

    很不錯啊   回復  更多評論   

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

    方法不錯,不過我覺得不是必要要這樣子做。  回復  更多評論   

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

    哦,這是我們運營提出來的,認為不做區分的話不便于日志查詢,不知道你怎么做的?@萍水相逢
      回復  更多評論   

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

    日志這個東西,一是寫一些有用的東西。二是每天一個(bakcup/housekeeping),每臺server一個,要查的話還要每臺server去看。所以我認為日志最多有個日期就得了。rename的工作在backup, 和當你要下載的時候做。這樣會方便很多。  回復  更多評論   

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

    運營環境的服務器一般開發人員是沒有訪問權限的,需要運營下載轉發,沒有專用下載工具的話,只是用ftp下載,命名工作還是在一開始做好。@萍水相逢
      回復  更多評論   

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

    好,思路不錯,學習了。  回復  更多評論   


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


    網站導航:
     
    主站蜘蛛池模板: xxxxxx日本处大片免费看| 四虎永久在线精品免费观看地址| 在线播放免费人成毛片乱码| 3344在线看片免费| 国产日产亚洲系列| 久久久亚洲AV波多野结衣| 亚洲综合无码一区二区痴汉| 国产精品久久亚洲一区二区| 久久青草精品38国产免费| 一个人看的www在线观看免费| 亚洲日韩VA无码中文字幕| 亚洲婷婷综合色高清在线| 国产精品黄页免费高清在线观看| 91麻豆最新在线人成免费观看| 四虎永久免费观看| 一个人看的www免费高清| 亚洲人成色7777在线观看| 亚洲妇女无套内射精| 免费av一区二区三区| 四虎影视永久免费观看网址| 国产美女无遮挡免费视频网站| 一级做a爱过程免费视| 国产大片91精品免费观看不卡| 6080午夜一级毛片免费看6080夜福利 | 亚洲性色成人av天堂| 台湾一级毛片永久免费| 国产国拍精品亚洲AV片| 久久久久久久99精品免费| 高清在线亚洲精品国产二区| 亚洲国色天香视频| 日韩一级视频免费观看| 亚洲综合激情另类小说区| 免费看成人AA片无码视频吃奶| 亚洲欧洲在线观看| 国产一区二区三区免费观看在线 | 亚洲国产成人资源在线软件| 免费a级毛片无码a∨免费软件| 亚洲第一页在线播放| 亚洲 自拍 另类小说综合图区| 免费人成在线观看网站| 黑人粗长大战亚洲女2021国产精品成人免费视频|