java.util.logging无配置文件全局日志管理案例
2015-12-04 13:17
661 查看
程序运行日志对调试程序很有用,JDK提供日志记录功能,网上很多讲述JDK日志功能的帖子只是代码片段,这里提供一个比较完整的案例,主要是注重几个日志相关的类之互相配合使用的关系。代码比较简单,类的说明在手册里也有,就不解释了。
伦理片 http://www.dotdy.com/
Java代码 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 socket编程服务器接收不到数据
- SpringMVC @ResponseBody 乱码
- Java中的this,final,static关键字
- JavaEE_Mybatis_SpringMVC_整合开发奇葩问题1:dataSource报错?
- MyEclipse10采用links安装插件的方法
- 关于java.lang.NoClassDefFoundError: com/sun/mail/util/LineInputStream解决办法
- 后台struts2如何接收前端传来的json数组
- java 试题java编译问题
- spring3 mvc框架乱码问题
- java 试题java编译问题
- Java 导入包正确依旧报错的处理方法
- java中类的继承性和多态性实例
- 【Java 常用算法】冒泡排序
- java寻找html文件中的标签
- Spring security安全认证框架
- java 深入技术四(Set)
- java统计中文字符出现次数
- java 试题java编译问题
- java实现斐波那序列
- Spring编程式事务管理和声明式事务管理