Java logger学习

 

这两天学习java logger 在网上找了一些资料与大家一起分享。

看几个程序实例:

java输出日志到文件或在控制台上显示 是根据\jre\lib目录下的配置文件logging.properties【当然你也可以定义自己的配置文件】和程序里的设置决定的。

LevelTest.java 最简单的日志输出到控制台

 

package logger;
import java.util.logging.Logger;
public class LevelTest
{ 
private static String >private static Logger log = Logger.getLogger(name); 
public void sub() { 
   log.severe("level.severe");
   log.warning("level.warning"); 
   log.info("level.info"); 
   log.config("level.config"); 
   log.fine("level.fine");
   log.finer("level.finer");
   log.finest("level.finest");
} 
public static void main(String[] args) 
{ 
   LevelTest test = new LevelTest(); 
   test.sub(); 
}
}

 

LoggingExample.java 输出到控制台和文件

 

package logger;
import java.util.logging.*;

public class LoggingExample
{
    public static void main(String[] args)
    {
        try{
        LogManager lm = LogManager.getLogManager();
        Logger logger = Logger.getLogger("LoggingExample");
        FileHandler fh = new FileHandler("E://workspace//javacore//logger//log_test.txt");

        lm.addLogger(logger);
        logger.setLevel(Level.INFO);

        fh.setFormatter( new SimpleFormatter() );
        logger.addHandler( fh );
        logger.log( Level.INFO,"test1");
        logger.log( Level.INFO,"test2");
        logger.log( Level.INFO,"test3");

        logger.severe("severe level");
        logger.warning("warning level");
        logger.info("info level");
        logger.config("config level");
        logger.fine("fine level");
        logger.finer("finer level");
        logger.finest("finest level");

        fh.close();

        }catch(Exception e)
        {
            System.out.println("Exception thrown: "+e );
            e.printStackTrace();
        }
    }
}
 

最后是将日志信息输出到网络主机:

LogTest .java 客户端

package logger;

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

public class LogTest {
   private static Logger logger =
       Logger.getAnonymousLogger();
   public static void main(String argv[]) throws IOException

   {//把localhost换成目的主机的ip
      Handler handler = new SocketHandler("localhost", 8099);
      logger.addHandler(handler);
      logger.log(Level.SEVERE, "Hello, World");
      logger.log(Level.INFO, "欢迎您的到来");
    }
   }

LogServer .java服务器端

package logger;

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) {
                     }
                   }
                 }
               }
             }
           }

 

相关类的用法以及相关属性的含义可以查阅logging.properties里的文档说明和jdk5.0 API.

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值