日志的使用

 

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

class  HTMLFormatter  extends  Formatter  // 自定义一个HTML的日志输出格式
{
 
public String format(LogRecord record) //必须实现Formatter 中的format方法
  {
   
return("<tr><td>" +
     (
new Date(record.getMillis())).toString() +
     
"</td>" +
     
"<td>" +
     record.getMessage() 
+
     
"</td></td> ");
  }

  
//重写getHead(Handler)和getTail(Handler)方法,作为输出格式的头尾。
 public String getHead(Handler h) 
  
{
   
return ("<html> " +
     
"<body> " +
     
"<table border> " +
     
"<tr><th>Time</th><th>Log Message</th></tr> ");
  }

 
public String getTail(Handler h)
  
{
   
return ("</table> " +
     
"</body> " +
     
"</html>");
  }

}


public   class  LoggingExample2
 
{
  
public static void main(String[] args)
   
{
    
try
     
{
      
//生成一个日志管理器
      LogManager lm = LogManager.getLogManager();   

      Logger parentLogger,childLogger;
      
//定义两种形式的输出对象。这里的输出对象可以是文件(FileHandler)、控制台(ConsoleHandler)、TCP/IP流(SocketHandler)[都继承与StreamHandler],内存(MemeryHandler)等。
      FileHandler xml_handler = new FileHandler("log_output.xml");
      FileHandler html_handler 
= new FileHandler("log_output.html");

      
//生成父子的日志对象,子日志会传递给父日志
      parentLogger = Logger.getLogger("ParentLogger");
      childLogger 
= Logger.getLogger("ParentLogger.ChildLogger");
      
      
//向日志管理器中添加父子日志
      lm.addLogger(parentLogger);
      lm.addLogger(childLogger);
      
      
//为父子日志对象定义不同的日志级别。
      parentLogger.setLevel(Level.WARNING);
      childLogger.setLevel(Level.ALL);
      
      
//为两种形式的输出定义格式
      xml_handler.setFormatter(new XMLFormatter());
      html_handler.setFormatter(
new HTMLFormatter());
      
      
//为父子日志对象添加输出
      parentLogger.addHandler(xml_handler);
      childLogger.addHandler(html_handler);

      
//开始向子日志对象输出日志
      childLogger.log(Level.FINE,"This is a fine log message");
      childLogger.log(Level.SEVERE, 
"This is a severe log mesage");

      
//关闭日志输出对象
      xml_handler.close();
      html_handler.close();
      
     }
 catch (SecurityException e)
     
{
      System.out.println(e);
      e.printStackTrace();
     }
 catch (IOException e)
     
{
      System.out.println(e);
      e.printStackTrace();
     }

   }

 }


 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值