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



你可能感兴趣的:(Log4j的进阶使用-自定义类和+自定义输出日志类型+输出文件)