日誌的使用

 

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

   }

 }


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章