posts - 309, comments - 6940, trackbacks - 0, articles - 3
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

Java socket编程中的日志处理

Posted on 2007-10-30 13:32 诗特林 阅读(2510) 评论(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) {
          }

        }

      }

    }

  }

}



四、运行结果



只有注册用户登录后才能发表评论。


网站导航: