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

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

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

    posts - 431,  comments - 344,  trackbacks - 0
    1.基本使用
      
      1.1服務(wù)器

      
      這個(gè)日志服務(wù)器的服務(wù)器端需要運(yùn)行:
      
      log4j jar包中的org.apache.log4j.net.SocketServer
      
      加參數(shù) 【本地監(jiān)聽(tīng)端口】【配置文件】【客戶端配置文件目錄】
      
      第三個(gè)參數(shù)【配置文件目錄】其實(shí)指的是針對(duì)每個(gè)客戶端的配置文件,等會(huì)詳細(xì)講!現(xiàn)在用“.”就可以了.
      
      服務(wù)器端的配置文件可以用這個(gè)(引自利用Log4j 創(chuàng)建日志服務(wù)器 By ?の?):
      
      #文件名socketserver.properties
      #如果需要顯示日志界面,可以將本行啟用
      #log4j.rootCategory=, A1
      log4j.rootLogger=DEBUG,A3
      log4j.category.org.apache.log4j.net=INFO
      
      log4j.appender.A1=org.apache.log4j.lf5.LF5Appender
      log4j.appender.A1.MaxNumberOfRecords=700
      
      log4j.appender.A4=org.apache.log4j.DailyRollingFileAppender
      log4j.appender.A4.file=server.log
      log4j.appender.A4.DatePattern='.'yyyyMMdd
      log4j.appender.A4.layout=org.apache.log4j.PatternLayout
      log4j.appender.A4.layout.ConversionPattern=\n\n[%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
      
      log4j.appender.A3=org.apache.log4j.RollingFileAppender
      log4j.appender.A3.file=server2.log
      log4j.appender.A3.MaxFileSize=1024KB
      log4j.appender.A3.MaxBackupIndex=999
      log4j.appender.A3.layout=org.apache.log4j.PatternLayout
      log4j.appender.A3.layout.ConversionPattern=\n\n[%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
      
      其中A1是啟動(dòng)Lf5的log監(jiān)視終端,A3限制大小的文件,A4是日期滾動(dòng)文件。
      
      單A3,A4是講所有客戶端的日志都存放到了同一個(gè)日志文件中,我覺(jué)的這種方法并不好。
      
      1.2客戶端
      
      客戶端的配置文件是這樣的:
      log4j.rootCategory=,SOCKET
      log4j.addivity.org.apache=true
      
      #應(yīng)用于socket
      log4j.appender.SOCKET=org.apache.log4j.net.SocketAppender
      log4j.appender.SOCKET.RemoteHost=localhost  #服務(wù)器的IP地址
      log4j.appender.SOCKET.Port=1978       #服務(wù)器的監(jiān)聽(tīng)端口
      log4j.appender.SOCKET.LocationInfo=true   #這個(gè)是什么我不知道
      log4j.appender.SOCKET.layout=org.apache.log4j.PatternLayout
      log4j.appender.SOCKET.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%t%m%n
      
      #A2
      log4j.appender.A2=org.apache.log4j.DailyRollingFileAppender
      log4j.appender.A2.file=server.log
      log4j.appender.A2.DatePattern='.'yyyy-MM-dd
      log4j.appender.A2.layout=org.apache.log4j.PatternLayout
      log4j.appender.A2.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
      
      啟動(dòng)服務(wù)器端,再運(yùn)行客戶端就可以了!但所有的服務(wù)器端/客戶端的日志都放到了一個(gè)日志文件中!
      
      2.稍微高級(jí)點(diǎn)的使用
      
      下面講如何把各個(gè)客戶端和服務(wù)器端的日志分別放到不同的日志文件中.
      
      這個(gè)我在網(wǎng)上找了好久也沒(méi)有找到!
      
      2.1服務(wù)器
      
      服務(wù)器的配置文件不用怎么改動(dòng),如果你不需要在同一個(gè)文件中存放所有日志,可以把配置文件第一行的A3去掉。
      
      但服務(wù)器端有個(gè)更大的麻煩:代碼有問(wèn)題!問(wèn)題夠大了吧,不知道算不算是個(gè)bug(我用的是1.2.11版log4j)。
      
      改吧!
      
      打開(kāi)log4j目錄下的src\java\org\apache\log4j\net\SocketServer.java
      
      在這段中改動(dòng)(看下面代碼第12行)
      
      LoggerRepository configureHierarchy(InetAddress inetAddress) {
      cat.info("Locating configuration file for "+inetAddress);
      // We assume that the toSting method of InetAddress returns is in
      // the format hostname/d1.d2.d3.d4 e.g. torino/192.168.1.1
      String s = inetAddress.toString();
      int i = s.indexOf("/");
      if(i == -1) {
      cat.warn("Could not parse the inetAddress ["+inetAddress+
      "]. Using default hierarchy.");
      return genericHierarchy();
      } else {
      //這個(gè)是什么意思,專(zhuān)門(mén)取"/"符號(hào)嗎?明顯是錯(cuò)的!閉掉
      //  String key = s.substring(0, i);
      //改為
      String key = s.substring(i+1);
      File configFile = new File(dir, key+CONFIG_FILE_EXT);
      if(configFile.exists()) {
      Hierarchy h = new Hierarchy(new RootLogger((Level) Priority.DEBUG));
      hierarchyMap.put(inetAddress, h);
      
      new PropertyConfigurator().doConfigure(configFile.getAbsolutePath(), h);
      
      return h;
      } else {
      cat.warn("Could not find config file ["+configFile+"].");
      return genericHierarchy();
      }
      }
      }
      
      編譯文件!
      
      打開(kāi)log4j目錄下的src\java\org\apache\log4j\net\SocketNode.java
      
      (改這段是因?yàn)槲矣玫臅r(shí)候出錯(cuò)!看不出來(lái)改不改有什么區(qū)別)
      
      改第54行
      
      ois = new ObjectInputStream(
      new BufferedInputStream(socket.getInputStream()));
      
      為
      
      InputStream is = socket.getInputStream();
      if (is != null) {
      ois = new ObjectInputStream(new BufferedInputStream(is));
      }
      
      文件頭加 import Java.io.InputStream;
      
      編譯文件!
      
      現(xiàn)在為每個(gè)配置客戶端編配置文件,把配置文件放到【客戶端配置文件目錄】中:
      log4j.rootCategory=,A4
      log4j.appender.A4=org.apache.log4j.DailyRollingFileAppender
      log4j.appender.A4.file=127.0.0.1.log  #為每個(gè)客戶端取不同的名字
      log4j.appender.A4.DatePattern='.'yyyyMMdd
      log4j.appender.A4.layout=org.apache.log4j.PatternLayout
      log4j.appender.A4.layout.ConversionPattern=\n\n[%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n
      
      保存文件名為[客戶端ip地址].lcf 如192.168.0.126.lcf
      
      2.2 客戶端
      
      客戶端不用改變,太幸運(yùn)了!!
      
      ok啦!
      
      啟動(dòng)服務(wù)器,啟動(dòng)客戶端,現(xiàn)在服務(wù)器的日志放到了server.log中,有配置文件的客戶端的日志會(huì)放到相應(yīng)的日志文件中,沒(méi)有配置文件的客戶端的日志依然放在server.log中!
      
      SocketServer.java 和 SocketNode.java兩個(gè)文件可以單獨(dú)做一個(gè)工程,把他們的package去掉就行了!
    posted on 2007-12-24 15:56 周銳 閱讀(345) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): ApacheJava
    主站蜘蛛池模板: 手机看片久久国产免费| 成年女人毛片免费观看97| 日韩在线播放全免费| 久草视频免费在线观看| 午夜色a大片在线观看免费| 免费一级肉体全黄毛片| 亚洲情综合五月天| 亚洲毛片免费观看| 色噜噜噜噜亚洲第一| 99re6在线精品免费观看| 亚洲第一网站免费视频| 国产最新凸凹视频免费| 亚洲区小说区图片区QVOD| 亚洲国产成AV人天堂无码| 免费看一级一级人妻片| 免费人妻无码不卡中文字幕系| 性盈盈影院免费视频观看在线一区| 高清在线亚洲精品国产二区| 国产亚洲av片在线观看播放 | 亚洲精品福利在线观看| 亚洲乱理伦片在线观看中字| 好猛好深好爽好硬免费视频| 一个人看www在线高清免费看| 免费成人在线观看| 久久精品国产精品亚洲毛片| 欧美亚洲精品一区二区| 三年在线观看免费观看完整版中文| av无码免费一区二区三区| 国产成人高清亚洲| 亚洲av永久综合在线观看尤物| 一个人晚上在线观看的免费视频| 1000部免费啪啪十八未年禁止观看| 国产国产人免费视频成69大陆| 精品国产综合成人亚洲区| 亚洲人成色777777精品| 青青操免费在线视频| 国产精品酒店视频免费看| 亚洲一区二区电影| 免费人成在线观看播放a| 无码精品A∨在线观看免费| 亚洲乱码中文字幕久久孕妇黑人|