程序运行日志对调试程序很有用,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.util.logging.Logger的用法和结构,对如果扩展Logger起到抛砖引玉的作用!尊重劳动成果,亲下载了要给个评价!
本文通过对数据压缩算法的简要介绍,然后以详细的示例演示了利用java.util.zip包实现数据的压缩与解压,并扩展到在网络传输方面如何应用java.util.zip包现数据压缩与解压
1. java.util.concurrent - Java 并发工具包 2. 阻塞队列 BlockingQueue 3. 数组阻塞队列 ArrayBlockingQueue 4. 延迟队列 DelayQueue 5. 链阻塞队列 LinkedBlockingQueue 6. 具有优先级的阻塞队列 ...
java.util.ConcurrentModificationException 异常问题详解1
Tomcat内存溢出的解决方法(java.util.concurrent.ExecutionException:java.lang.OutOfMemoryError),内附解决方案!
Exception in thread “main“ java.util.InputMismatchException
java.util.Date与java.sql.Date互转及字符串转换为日期时间格式.docx
java.util.concurrent系列文章(1) java.util.concurrent系列文章(1) java.util.concurrent系列文章(1) java.util.concurrent系列文章(1)
这是我在编写struts2中遇到的问题,整理出来,包括截图,希望可以帮到大家
详细介绍java.util.Date和java.sql.Date相互转换的多种方法总结,希望对大家有帮助
java并发工具包 java.util.concurrent中文版-带书签版
java.util包
java.util.pdf
Java解压缩文件,并以ZIP格式压缩文件,主要是使用java.util.zip 包中的类来实现解压、压缩文件功能,如果你对这个类并不太熟悉,你正好可以参考一下这个类是如何用的。
世界范围内的时区列表。由 java.util.TimeZone 类导出
java.util包源码,pdf版,方便打印
使用java.util.timer实现的简单定时任务,在实现简单一次性定时任务时,使用java.util.timer非常的简单易用,适合没有接触过quartz的新手急用。
java.util包总结,方便大家学习。请多指教。
java.util.concurrent总体概览图。 收取资源分3分。需要的同学可以下载一下。 java.util.concurrent主要包括5个部分executor,colletions,locks,atomic,tools。 该图详细的列举了并发包下面的结构,包含所有接口和...
Java.util包常用接口