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

          Java socket編程中的日志處理

          Posted on 2007-10-30 13:32 詩特林 閱讀(2686) 評論(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) {
                    }

                  }

                }

              }

            }

          }



          四、運行結果


          主站蜘蛛池模板: 澳门| 巴林左旗| 那坡县| 邢台市| 新兴县| 盖州市| 施甸县| 仪陇县| 历史| 辉南县| 田林县| 广东省| 平昌县| 武宣县| 三亚市| 武城县| 横峰县| 巴林右旗| 奈曼旗| 秦皇岛市| 方山县| 阿合奇县| 旅游| 康定县| 安新县| 新田县| 武平县| 蒙自县| 新巴尔虎左旗| 隆林| 新化县| 民丰县| 柳林县| 仁怀市| 丹东市| 三门峡市| 图木舒克市| 托里县| 容城县| 丰镇市| 环江|