- 博客分类:
程序运行日志对调试程序很有用,JDK提供日志记录功能,网上很多讲述JDK日志功能的帖子只是代码片段,这里提供一个比较完整的案例,主要是注重几个日志相关的类之互相配合使用的关系。代码比较简单,类的说明在手册里也有,就不解释了。
伦理片 http://www.dotdy.com/
- package Town;
- import java.io.IOException;
- import java.text.SimpleDateFormat;
- import java.util.Date;
- import java.util.logging.*;
- /*
- * Created with IntelliJ IDEA.
- * User: cobra
- * Date: 15-12-3
- * Time: 下午4:16
- * To change this template use File | Settings | File Templates.
- */
- public class TraceLog {
- private String LogPath ="E:\\data\\Logs\\lucom\\";
- private int logCount = 5;
- private int LogLimit = 10000000; //指定要写入到任意文件的近似最大量(以字节为单位) 10M
- private static LogManager logManager = LogManager.getLogManager();
- private static Logger InfoLog;
- private static Logger ErrLog;
- public TraceLog () {
- if (logManager.getLogger("LogInfo") == null) {
- iniInfoLog();
- } else {
- InfoLog = logManager.getLogger("LogInfo");
- }
- if (logManager.getLogger("LogErr") == null) {
- iniErrLog();
- } else {
- ErrLog = logManager.getLogger("LogErr");
- }
- }
- //初始化info日志
- private void iniInfoLog () {
- String InfoLogFile = "traceinfo%g.%u.log";
- InfoLog = Logger.getLogger("LogInfo");
- try {
- FileHandler InfoFileHandler = new FileHandler(LogPath+InfoLogFile , LogLimit, logCount,true);
- InfoFileHandler.setLevel(Level.INFO);
- InfoFileHandler.setFormatter(new Formatter() {
- @Override
- public String format(LogRecord record) {
- return (new SimpleDateFormat("[yyyy-MM-dd HH:mm:ss.SSS]").format(new Date()))+":"+record.getLevel()+":"+record.getMessage()+"\n";
- }
- });
- InfoLog.addHandler(InfoFileHandler);
- logManager.addLogger(InfoLog);
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- //初始化Err日志
- private void iniErrLog () {
- String ErrLogFile = "traceerr%g.%u.log";
- ErrLog = Logger.getLogger("LogErr");
- try {
- FileHandler ErrFileHandler = new FileHandler(LogPath+ErrLogFile , LogLimit,logCount,true);
- ErrFileHandler.setLevel(Level.WARNING);
- ErrFileHandler.setFormatter(new Formatter() {
- @Override
- public String format(LogRecord record) {
- return (new SimpleDateFormat("[yyyy-MM-dd HH:mm:ss.SSS]").format(new Date()))+":"+record.getLevel()+":"+record.getMessage()+"\n";
- }
- });
- ErrLog.addHandler(ErrFileHandler);
- logManager.addLogger(ErrLog);
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- public void logInfo (String LoggingMessage)
- {
- InfoLog.info(LoggingMessage);
- }
- public void logErr (String LoggingMessage)
- {
- ErrLog.warning(LoggingMessage);
- }
- }