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


  • 博客分类: 

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

伦理片 http://www.dotdy.com/

Java代码   收藏代码
  1. package Town;  
  2.   
  3. import java.io.IOException;  
  4. import java.text.SimpleDateFormat;  
  5. import java.util.Date;  
  6. import java.util.logging.*;  
  7.   
  8. /* 
  9.  * Created with IntelliJ IDEA. 
  10.  * User: cobra 
  11.  * Date: 15-12-3 
  12.  * Time: 下午4:16 
  13.  * To change this template use File | Settings | File Templates. 
  14.  */  
  15. public class TraceLog {  
  16.     private String LogPath ="E:\\data\\Logs\\lucom\\";  
  17.     private int logCount = 5;  
  18.     private int LogLimit = 10000000;    //指定要写入到任意文件的近似最大量(以字节为单位) 10M  
  19.     private static  LogManager logManager = LogManager.getLogManager();  
  20.     private static Logger InfoLog;  
  21.     private static Logger ErrLog;  
  22.   
  23.     public TraceLog () {  
  24.         if (logManager.getLogger("LogInfo") == null) {  
  25.             iniInfoLog();  
  26.         } else {  
  27.             InfoLog = logManager.getLogger("LogInfo");  
  28.         }  
  29.         if (logManager.getLogger("LogErr") == null) {  
  30.             iniErrLog();  
  31.         } else {  
  32.             ErrLog = logManager.getLogger("LogErr");  
  33.         }  
  34.     }  
  35.     //初始化info日志  
  36.     private void iniInfoLog () {  
  37.         String InfoLogFile = "traceinfo%g.%u.log";  
  38.         InfoLog = Logger.getLogger("LogInfo");  
  39.         try {  
  40.             FileHandler InfoFileHandler = new FileHandler(LogPath+InfoLogFile , LogLimit, logCount,true);  
  41.             InfoFileHandler.setLevel(Level.INFO);  
  42.             InfoFileHandler.setFormatter(new Formatter() {  
  43.                 @Override  
  44.                 public String format(LogRecord record) {  
  45.                     return (new SimpleDateFormat("[yyyy-MM-dd HH:mm:ss.SSS]").format(new Date()))+":"+record.getLevel()+":"+record.getMessage()+"\n";  
  46.                 }  
  47.             });  
  48.             InfoLog.addHandler(InfoFileHandler);  
  49.             logManager.addLogger(InfoLog);  
  50.         } catch (IOException e) {  
  51.             e.printStackTrace();  
  52.         }  
  53.     }  
  54.     //初始化Err日志  
  55.     private void iniErrLog () {  
  56.         String ErrLogFile = "traceerr%g.%u.log";  
  57.         ErrLog = Logger.getLogger("LogErr");  
  58.         try {  
  59.             FileHandler ErrFileHandler = new FileHandler(LogPath+ErrLogFile , LogLimit,logCount,true);  
  60.             ErrFileHandler.setLevel(Level.WARNING);  
  61.             ErrFileHandler.setFormatter(new Formatter() {  
  62.                 @Override  
  63.                 public String format(LogRecord record) {  
  64.                     return (new SimpleDateFormat("[yyyy-MM-dd HH:mm:ss.SSS]").format(new Date()))+":"+record.getLevel()+":"+record.getMessage()+"\n";  
  65.                 }  
  66.             });  
  67.             ErrLog.addHandler(ErrFileHandler);  
  68.             logManager.addLogger(ErrLog);  
  69.         } catch (IOException e) {  
  70.             e.printStackTrace();  
  71.         }  
  72.     }  
  73.   
  74.     public void logInfo (String LoggingMessage)  
  75.     {  
  76.         InfoLog.info(LoggingMessage);  
  77.     }  
  78.     public void logErr (String LoggingMessage)  
  79.     {  
  80.         ErrLog.warning(LoggingMessage);  
  81.     }  
  82. }  

 



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值