Logger 记录日志

来源:互联网 发布:协同过滤算法java实现 编辑:程序博客网 时间:2024/05/19 17:26

自定义日志格式

package LogHandle;

import java.util.Date;
import java.util.logging.Formatter;
import java.util.logging.LogRecord;
public class LogFormatter extends Formatter
{
   //@Override
    public String format(LogRecord record)
    {
        return format_(record);
    }
    //定义记录格式
    public String format_(LogRecord record)
    {
        String result=null;
        result="--------------------------------------------------"+"/n"
               +"Date : "  +record.getMillis() +" = " +new Date(record.getMillis()).toString()+"/n"
               +"Level : " +record.getLevel()+"/n"
               +"Logger: " +record.getLoggerName()+"/n"
               +"ThreadID: " +record.getThreadID() +" ->Thrown: " + record.getThrown()+"/n"
               +"SequenceNum: " + record.getSequenceNumber()+"/n"
               +"Msg: "+record.getMessage()+"->Par: "+record.getParameters()+"->Method: "+record.getSourceMethodName()+"->Class: "+record.getSourceClassName()+"/n"
               +"--------------------------------------------------"+"/n";
        return result;
    }
  
}

 

/*

  *获得logger 对象

  */

package LogHandle;

import java.util.logging.Logger;
import java.util.logging.Level;
import java.util.logging.ConsoleHandler;
import java.util.logging.FileHandler;
import java.io.IOException;

public class Logger_
{
    private String loggername;
    private String logname;
    private Logger log=null;
    private ConsoleHandler csh=null;
    private FileHandler fh=null;
    private LogFormatter lf=null;
    /*
     * 构造方法
     */
    public Logger_(String loggername,String logname)
    {
        this.loggername=loggername;
        this.logname=logname;
        lf=new LogFormatter();
    }

   /*

    *返回定义好的Logger对象

    */
       public Logger getLogger_()
    {
          log=Logger.getLogger(this.loggername);
          log.setLevel(Level.ALL);
          csh=new ConsoleHandler();
          csh.setLevel(Level.ALL);
          log.addHandler(csh);
          try
          {
          fh=new FileHandler(System.getProperty("user.dir",".")+"/"+this.logname+".log",true);
          fh.setLevel(Level.ALL);
          fh.setFormatter(lf);
          log.addHandler(fh);
        } catch (SecurityException e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
          return log;
    } 
   
}
测试程序

package test;
import java.io.IOException;
import java.util.logging.Logger;

import LogHandle.Logger_;
public class TestLogger
{
    public static void main(String[] args) throws IOException
    {   
            Logger_ my=new Logger_("Test","logmy");
            Logger logmy=my.getLogger_();
            logmy.info("TestLogger");          
    }
}

运行输出

2010-4-28 16:29:23 test.TestLogger main
信息: TestLogger

日志格式

 --------------------------------------------------
Date : 1272443363022 = Wed Apr 28 16:29:23 CST 2010
Level : INFO
Logger: Test
ThreadID: 10 ->Thrown: null
SequenceNum: 0
Msg: TestLogger->Par: null->Method: main->Class: test.TestLogger
--------------------------------------------------

原创粉丝点击