疯狂

STANDING ON THE SHOULDERS OF GIANTS
posts - 481, comments - 486, trackbacks - 0, articles - 1
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

拾遗补缺-logger

Posted on 2009-11-02 15:03 疯狂 阅读(299) 评论(0)  编辑  收藏 所属分类: java
java.util.logging.Logger的使用
2009-07-22 20:13

1.在程序里面写死需要哪些log级别,使用哪些subscribe

import java.util.logging.*;
public class LoggingProgramSetPubSubpro
{
public static void main(String[] args)
{
   Logger logger = Logger.getLogger("loggingTest");
   logger.setLevel(Level.INFO);//这个设定最重要
  
   ConsoleHandler consoleHandler = new ConsoleHandler();
   consoleHandler.setLevel(Level.OFF);//这个好像不起作用
  
   logger.addHandler(consoleHandler);
  
   logger.severe("嚴重訊息");
   logger.warning("警示訊息");
   logger.info("一般訊息");
   logger.config("設定方面的訊息");
   logger.fine("細微的訊息");
   logger.finer("更細微的訊息");
   logger.finest("最細微的訊息");
}
}

2.如何在配置文件里面改,好处是不用重新编译原文件

import java.util.logging.*;
/**

说明:我们可以在C:\Documents and Settings\yay目录下面找到java0.log文件
它是一个xml格式的,
我们可以在${jdk}\jar\lib下面找到logging.properties文件,你可以在这里面修改

 

*/
public class LoggingPropertiesFile
{
   public static void main(String[] args)
    {

     Logger logger = Logger.getLogger("loggingTest");
     logger.severe("严重的信息");
     logger.warning("警告信息");
     logger.info("一般信息");
     logger.config("设定方面的信息");
     logger.fine("细微的信息");
     logger.finer("更细微的信息");
     logger.finest("最细微的信息");
    

    }
}

3.使用log方法,使用自定义的Formatter

import java.util.logging.*;
/**

輸出格式是由java.util.logging.Formatter决定的
注意这里说得这个Formatter是属于哪里包里面的,不要搞混了

*/
public class LoggingLogMethod
{
public static void main(String[] args)
{
   Logger logger = Logger.getLogger("loggingTest");
   logger.setLevel(Level.ALL);
  
   ConsoleHandler consoleHandler = new ConsoleHandler();
   consoleHandler.setLevel(Level.ALL);
  
   logger.addHandler(consoleHandler);
  
   try
   {
    //%h代表用户主目录
    //%g代表自动编号
    FileHandler fileHandler=new FileHandler("%h/loggingHome%g.log");
    fileHandler.setLevel(Level.ALL);
    fileHandler.setFormatter(new YAYFormatter());
   
   
    logger.addHandler(fileHandler);
   }
   catch (Exception e)
   {
    e.printStackTrace();
   }
  
  
  
   logger.log(Level.SEVERE, "嚴重訊息");
   logger.log(Level.WARNING, "警示訊息");
   logger.log(Level.CONFIG, "一般訊息");
   logger.log(Level.CONFIG, "設定方面的訊息");
   logger.log(Level.FINE, "細微的訊息");
   logger.log(Level.FINER, "更細微的訊息");
   logger.log(Level.FINEST, "最細微的訊息");
}
}

4.如何自定义java.util.logging.Formatter

import java.util.logging.*;
public class YAYFormatter extends Formatter
{
public String format(LogRecord logRecord)
{
   return "LogRecord info: " + logRecord.getSourceClassName() +//就是哪个类里面用的了你
    "\n" +"Level\t|\tLoggerName\t|\tMessage\t|\n" +
   logRecord.getLevel() + //是SEVERE还是WARNING还是别的
     "\t|\t" +
    logRecord.getLoggerName() +//这个logger发布者
      "\t|\t" +
    logRecord.getMessage() + //消息内容
       "\t|\n\n";   
}
}


只有注册用户登录后才能发表评论。


网站导航: