自定义日志格式
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
--------------------------------------------------