日志的使用

来源:互联网 发布:农村教育问题 知乎 编辑:程序博客网 时间:2024/05/16 02:05

 

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();
     }

   }

 }