posts - 310, comments - 6939, trackbacks - 0, articles - 3
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          Java socket編程中的日志處理

          Posted on 2007-10-30 13:32 詩特林 閱讀(2690) 評論(0)  編輯  收藏 所屬分類: Socket
                                                       Java socket編程中的日志處理
           

          Logger 對象用來記錄特定系統或應用程序組件的日志消息。一般使用圓點分隔的層次命名空間來命名 LoggerLogger 名稱可以是任意的字符串,但是它們一般應該基于被記錄組件的包名或類名,如 java.net javax.swing。此外,可以創建匿名 Logger,其名稱未存儲在 Logger 命名空間中。

          下面演示在Socket通信中使用Logging來進行日志消息.

          一、修改系統日志配置文件

          <Java_HOME>\jre1.5.0_09\lib\logging.properties文件,有一個ConsoleHandler:

          handlers= java.util.logging.ConsoleHandler

          當然也有一個默認的FileHandler:

          java.util.logging.FileHandler.pattern = %h/java%u.log

          java.util.logging.FileHandler.limit = 50000

          java.util.logging.FileHandler.count = 1

          java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter

          handlers= java.util.logging.ConsoleHandler變成如下內容

          handlers= java.util.logging.FileHandler, java.util.logging.ConsoleHandler

          二、客戶端程序

          LogTest.java:

          package sterning.tcpsocket;

          import java.io.*;
          import java.util.logging.*;

          public class LogTest {
            
          private static Logger logger =
                Logger.getAnonymousLogger();
            
          public static void main(String argv[]) throws IOException {
              Handler handler 
          = new SocketHandler("localhost"8099);
              logger.addHandler(handler);
              logger.log(Level.SEVERE, 
          "Hello, World");
              logger.log(Level.INFO, 
          "歡迎您的到來");
            }

          }



           

          三、服務端程序

          LogServer.java:

          package sterning.tcpsocket;
          import javax.net.ssl.*;
          import javax.net.*;
          import java.io.*;
          import java.net.*;

          public class LogServer {
            
          private static final int PORT_NUM = 8099;
            
          public static void main(String args[]) {
              ServerSocketFactory serverSocketFactory 
          =
                ServerSocketFactory.getDefault();
              ServerSocket serverSocket 
          = null;
              
          try {
                serverSocket 
          =
                  serverSocketFactory.createServerSocket(PORT_NUM);
              }
           catch (IOException ignored) {
                System.err.println(
          "無法創建服務");
                System.exit(
          -1);
              }

              System.out.printf(
          "LogServer 運行端口: %s%n", PORT_NUM);
              
          while (true{
                Socket socket 
          = null;
                
          try {
                  socket 
          = serverSocket.accept();
                  InputStream is 
          = socket.getInputStream();
                  BufferedReader br 
          = new BufferedReader(
                    
          new InputStreamReader(is, "GBK"));
                  String line 
          = null;
                  
          while ((line = br.readLine()) != null{
                    System.out.println(line);
                  }

                }
           catch (IOException exception) {
                  
          // 處理下在個請求.
                }
           finally {
                  
          if (socket != null{
                    
          try {
                      socket.close();
                    }
           catch (IOException ignored) {
                    }

                  }

                }

              }

            }

          }



          四、運行結果


          主站蜘蛛池模板: 临清市| 清远市| 法库县| 新营市| 汽车| 新沂市| 响水县| 宣恩县| 康乐县| 栖霞市| 贵港市| 治多县| 南皮县| 湾仔区| 沙雅县| 湄潭县| 昌宁县| 衡山县| 获嘉县| 霍林郭勒市| 南充市| 中牟县| 万宁市| 九江市| 吴桥县| 惠东县| 左权县| 五华县| 朝阳区| 谷城县| 浙江省| 青海省| 巴彦淖尔市| 盐池县| 长岭县| 桓台县| 微山县| 武宣县| 仁怀市| 东兰县| 从化市|