欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java.util.logging无配置文件全局日志管理案例

程序员文章站 2022-05-03 22:30:44
...

程序运行日志对调试程序很有用,JDK提供日志记录功能,网上很多讲述JDK日志功能的帖子只是代码片段,这里提供一个比较完整的案例,主要是注重几个日志相关的类之互相配合使用的关系。代码比较简单,类的说明在手册里也有,就不解释了。

 

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

 

相关标签: java logging