Java socket编程中的日志处理
2012-11-26 22:06
176 查看
Logger
对象用来记录特定系统或应用程序组件的日志消息。一般使用圆点分隔的层次命名空间来命名 Logger。Logger
名称可以是任意的字符串,但是它们一般应该基于被记录组件的包名或类名,如 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:
三、服务端程序
LogServer.java:
四、运行结果
对象用来记录特定系统或应用程序组件的日志消息。一般使用圆点分隔的层次命名空间来命名 Logger。Logger
名称可以是任意的字符串,但是它们一般应该基于被记录组件的包名或类名,如 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) { } } } } } }
四、运行结果
相关文章推荐
- SQL日志文件总结及日志满的处理[转载]
- 非归档模式下联机重做日志全部丢失 处理方法
- 简单的异常处理--生成xml异常日志
- 利用spring aop统一处理异常和打日志
- NSException:错误处理机制---调试中以及上架后的产品如何收集错误日志
- squid日志文件太大,怎样处理?
- Windows/Linux下Oracle监听日志过大无需重启数据库服务的处理方法
- 日志相关处理
- (转)大规模日志收集处理项目的技术总结
- flume+RabbitMQ+Storm实时日志运算处理
- SQLSERVER 2008R2 日志已满,处理方式
- Nginx 的日志压缩处理
- Logstash处理json格式日志文件的三种方法
- Spring Boot教程(六)使用AOP统一处理Web请求日志
- Entity Framework 缓存处理与日志监控 相关网址
- open-iscsi源码分析-日志处理(二)
- sql server日志文件总结及日志满的处理办法
- JavaEE SSH框架整合(四) 日志处理Spring结合 log4j、slf4j [转]
- 日志回滚与处理
- java日志处理组件log4j--log4j.xml配置详解