Log4j的進階使用-自定義類和+自定義輸出日志類型+輸出文件
自定義java類
package com.sitech.nbc.util;
import java.io.ByteArrayOutputStream;
import java.io.PrintWriter;
import org.apache.log4j.Logger;
/**
*
* <p>Title: 系統的調試信息和錯誤信息的文件記錄的接口</p>
* <p>Description: 系統的調試信息和錯誤信息的文件記錄的接口</p>
* @version 1.0
*/
public class FileLog {
private static Logger debugLogger = null;
private static Logger errorLogger = null;
private static Logger infoLogger = null;
private static Logger countTimeLogger=null;
static {
loadLogger();
}
public FileLog() {
super();
}
/**
* 裝載系統使用的log
*/
static void loadLogger() {
debugLogger = Logger.getLogger("");
infoLogger = Logger.getLogger("info");
errorLogger = Logger.getLogger("error");
countTimeLogger = Logger.getLogger("countTimeLogger");
}
//自定義的輸出類型 public static void countTimeLog(Object msg) {
countTimeLogger.info(msg);
}
public static void countTimeLog(Object msg,Exception e) {
countTimeLogger.info(msg+"\n"+getExceptionTrace(e));
}
/**
* @param msg: error級別的錯誤信息
*/
public static void errorLog(Object msg) {
errorLogger.error(msg);
}
/**
* @param e: error級別的異常信息
*/
public static void errorLog(Exception e) {
errorLogger.error(getExceptionTrace(e));
}
/**
* @param e: error級別的異常信息
* @param msg: error級別的錯誤信息
*/
public static void errorLog(Exception e, Object msg) {
errorLogger.error(msg + "\n" + getExceptionTrace(e));
}
/**
* @param msg: debug級別的錯誤信息
*/
public static void debugLog(Object msg) {
debugLogger.debug(msg);
}
/**
* @param e: debug級別的異常信息
*/
public static void debugLog(Exception e) {
debugLogger.debug(getExceptionTrace(e));
}
/**
* @param e: debug級別的異常信息
* @param msg: debug級別的錯誤信息
*/
public static void debugLog(Exception e, Object msg) {
debugLogger.debug(msg + "\n" + getExceptionTrace(e));
}
/**
* @param msg: info級別的錯誤信息
*/
public static void systemLog(Object msg) {
infoLogger.info(msg);
}
/**
* @param e: info級別的異常信息
*/
public static void systemLog(Exception e) {
infoLogger.info(getExceptionTrace(e));
}
/**
* @param e: debug級別的異常信息
* @param msg: debug級別的錯誤信息
*/
public static void systemLog(Exception e, Object msg) {
infoLogger.info(msg + "\n" + getExceptionTrace(e));
}
/**
* @param e: 異常信息輸出
*/
public static void exOut(Exception e) {
String print = getExceptionTrace(e);
errorLogger.error(print);
}
/**
* @param e: debug級別的異常信息
* @param msg: debug級別的錯誤信息
*/
private static String getExceptionTrace(Exception e) {
String print = null;
ByteArrayOutputStream bout = new ByteArrayOutputStream();
PrintWriter wrt = new PrintWriter(bout);
e.printStackTrace(wrt);
wrt.close();
print = bout.toString();
return print;
}
}
使用
FileLog.countTimeLog(“輸出日志”);
Log4j配置
log4j.rootLogger=INFO,C,F,E
log4j.appender.C=org.apache.log4j.ConsoleAppender
log4j.appender.C.Target=System.out
log4j.appender.C.Threshold=DEBUG
log4j.appender.C.layout=org.apache.log4j.PatternLayout
log4j.appender.C.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss,SSS} [%p] - %m%n
log4j.appender.F=org.apache.log4j.DailyRollingFileAppender
log4j.appender.F.Append=true
#log4j.appender.F.File=//scmgt//maintenance//checkdownload//gt//resinfo.log
log4j.appender.F.File=/scmgt/shell/gt/info.log
log4j.appender.F.DatePattern=yyyy-MM-dd'.txt'
log4j.appender.F.Threshold=INFO
log4j.appender.F.layout=org.apache.log4j.PatternLayout
log4j.appender.F.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss,SSS} [%p] - %m%n
log4j.appender.E=org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.Append=true
#log4j.appender.E.File=//scmgt//maintenance//checkdownload//gt//reserror.log
log4j.appender.E.File=/scmgt/shell/gt/error.log
log4j.appender.E.DatePattern=yyyy-MM-dd'.txt'
log4j.appender.E.Threshold=ERROR
log4j.appender.E.layout=org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss,SSS} [%p] - %m%n
#countTimeLogger
log4j.logger.countTimeLogger=INFO,countTimeLogger
log4j.appender.countTimeLogger=org.apache.log4j.DailyRollingFileAppender
log4j.appender.countTimeLogger.File=/scmgt/shell/gt/countTimeLogger.log
log4j.appender.countTimeLogger.Append=true
log4j.appender.countTimeLogger.Threshold=INFO
#log4j.appender.debugout.Threshold=TRACE
log4j.appender.countTimeLogger.DatePattern='.'yyyy-MM-dd
log4j.appender.countTimeLogger.layout=org.apache.log4j.PatternLayout
log4j.appender.countTimeLogger.layout.ConversionPattern=%5p:%d - %m%n來自:http://blog.csdn.net/sd0902/article/details/8844732
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!