Log4j的进阶使用 自定义类 日志类型 日志导出位置

来源:互联网 发布:mac怎么重启finder 编辑:程序博客网 时间:2024/06/03 19:08

自定义java类

[java] view plain copy
  1. package com.sitech.nbc.util;  
  2.   
  3. import java.io.ByteArrayOutputStream;  
  4. import java.io.PrintWriter;  
  5.   
  6. import org.apache.log4j.Logger;  
  7. /** 
  8.  *  
  9.  * <p>Title: 系统的调试信息和错误信息的文件记录的接口</p> 
  10.  * <p>Description: 系统的调试信息和错误信息的文件记录的接口</p> 
  11.  * @version 1.0 
  12.  */  
  13. public class FileLog {  
  14.     private static Logger debugLogger = null;        
  15.     private static Logger errorLogger = null;  
  16.     private static Logger infoLogger = null;  
  17.   
  18.     private static Logger countTimeLogger=null;  
  19.       
  20.   
  21.     static {  
  22.         loadLogger();  
  23.     }  
  24.   
  25.     public FileLog() {  
  26.         super();  
  27.     }  
  28.   
  29.     /** 
  30.      * 装载系统使用的log 
  31.      */  
  32.     static void loadLogger() {  
  33.         debugLogger = Logger.getLogger("");  
  34.         infoLogger = Logger.getLogger("info");  
  35.         errorLogger = Logger.getLogger("error");  
  36.           
  37.         countTimeLogger = Logger.getLogger("countTimeLogger");  
  38.     }  
  39.       
  40.     //自定义的输出类型  
[java] view plain copy
  1.    public static void countTimeLog(Object msg) {  
  2.     countTimeLogger.info(msg);  
  3.    }  
  4.      
  5.    public static void countTimeLog(Object msg,Exception e) {  
  6.     countTimeLogger.info(msg+"\n"+getExceptionTrace(e));  
  7.    }  
  8.      
  9.      
  10.    /** 
  11.     * @param msg: error级别的错误信息 
  12.  */  
  13.    public static void errorLog(Object msg) {  
  14.        errorLogger.error(msg);  
  15.    }  
  16.   
  17.    /** 
  18.     * @param e: error级别的异常信息 
  19.  */  
  20.    public static void errorLog(Exception e) {  
  21.        errorLogger.error(getExceptionTrace(e));  
  22.    }  
  23.   
  24.    /** 
  25.     * @param e: error级别的异常信息 
  26.     * @param msg: error级别的错误信息 
  27.  */  
  28.    public static void errorLog(Exception e, Object msg) {  
  29.        errorLogger.error(msg + "\n" + getExceptionTrace(e));  
  30.    }  
  31.   
  32. /** 
  33.     * @param msg: debug级别的错误信息 
  34.  */  
  35.    public static void debugLog(Object msg) {  
  36.        debugLogger.debug(msg);  
  37.    }  
  38.   
  39.    /** 
  40.     * @param e: debug级别的异常信息 
  41.  */  
  42.    public static void debugLog(Exception e) {  
  43.        debugLogger.debug(getExceptionTrace(e));  
  44.    }  
  45.   
  46.    /** 
  47.     * @param e: debug级别的异常信息 
  48.     * @param msg: debug级别的错误信息 
  49.  */  
  50.    public static void debugLog(Exception e, Object msg) {  
  51.        debugLogger.debug(msg + "\n" + getExceptionTrace(e));  
  52.    }  
  53.   
  54.    /** 
  55.     * @param msg: info级别的错误信息 
  56.  */  
  57.    public static void systemLog(Object msg) {  
  58.        infoLogger.info(msg);  
  59.    }  
  60.   
  61. /** 
  62.     * @param e: info级别的异常信息 
  63.  */  
  64.    public static void systemLog(Exception e) {  
  65.        infoLogger.info(getExceptionTrace(e));  
  66.    }  
  67.   
  68.    /** 
  69.     * @param e: debug级别的异常信息 
  70.     * @param msg: debug级别的错误信息 
  71.  */  
  72.    public static void systemLog(Exception e, Object msg) {  
  73.        infoLogger.info(msg + "\n" + getExceptionTrace(e));  
  74.    }  
  75.   
  76.    /** 
  77.     * @param e: 异常信息输出 
  78.  */  
  79.    public static void exOut(Exception e) {  
  80.        String print = getExceptionTrace(e);  
  81.        errorLogger.error(print);  
  82.    }  
  83.   
  84.    /** 
  85.     * @param e: debug级别的异常信息 
  86.     * @param msg: debug级别的错误信息 
  87.  */  
  88.    private static String getExceptionTrace(Exception e) {  
  89.        String print = null;  
  90.        ByteArrayOutputStream bout = new ByteArrayOutputStream();  
  91.        PrintWriter wrt = new PrintWriter(bout);  
  92.        e.printStackTrace(wrt);  
  93.        wrt.close();  
  94.        print = bout.toString();  
  95.        return print;  
  96.    }  


使用

FileLog.countTimeLog(“输出日志”);



Log4j配置

[java] view plain copy
  1. log4j.rootLogger=INFO,C,F,E  
  2.   
  3. log4j.appender.C=org.apache.log4j.ConsoleAppender   
  4. log4j.appender.C.Target=System.out  
  5. log4j.appender.C.Threshold=DEBUG  
  6. log4j.appender.C.layout=org.apache.log4j.PatternLayout  
  7. log4j.appender.C.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss,SSS} [%p] - %m%n  
  8.   
  9.   
  10. log4j.appender.F=org.apache.log4j.DailyRollingFileAppender  
  11. log4j.appender.F.Append=true   
  12. #log4j.appender.F.File=//scmgt//maintenance//checkdownload//gt//resinfo.log  
  13. log4j.appender.F.File=/scmgt/shell/gt/info.log  
  14. log4j.appender.F.DatePattern=yyyy-MM-dd'.txt'  
  15. log4j.appender.F.Threshold=INFO  
  16. log4j.appender.F.layout=org.apache.log4j.PatternLayout  
  17. log4j.appender.F.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss,SSS} [%p] - %m%n  
  18.   
  19. log4j.appender.E=org.apache.log4j.DailyRollingFileAppender  
  20. log4j.appender.E.Append=true   
  21. #log4j.appender.E.File=//scmgt//maintenance//checkdownload//gt//reserror.log  
  22. log4j.appender.E.File=/scmgt/shell/gt/error.log  
  23. log4j.appender.E.DatePattern=yyyy-MM-dd'.txt'  
  24. log4j.appender.E.Threshold=ERROR  
  25. log4j.appender.E.layout=org.apache.log4j.PatternLayout  
  26. log4j.appender.E.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss,SSS} [%p] - %m%n  
  27.   
  28. #countTimeLogger  
  29. log4j.logger.countTimeLogger=INFO,countTimeLogger  
  30. log4j.appender.countTimeLogger=org.apache.log4j.DailyRollingFileAppender  
  31. log4j.appender.countTimeLogger.File=/scmgt/shell/gt/countTimeLogger.log  
  32. log4j.appender.countTimeLogger.Append=true  
  33. log4j.appender.countTimeLogger.Threshold=INFO  
  34. #log4j.appender.debugout.Threshold=TRACE  
  35. log4j.appender.countTimeLogger.DatePattern='.'yyyy-MM-dd  
  36. log4j.appender.countTimeLogger.layout=org.apache.log4j.PatternLayout  
  37. log4j.appender.countTimeLogger.layout.ConversionPattern=%5p:%d - %m%n  

来自:http://blog.csdn.net/sd0902/article/details/8844732
1 0
原创粉丝点击