简易Log4j配置代替System.out.println

Log4j是一种方便的日志记录工具包,平时做简单的验证性测试时,不希望使用System.out.println,同时又不希望在每个java文件中手动引入Log4j等重复工作,可以使用一种对Log4j的静态封装,代码中直接使用静态方法向控制台输出信息。其中使用StackTrace获取调用方法信息。

public class CU {
	private static Log	log;
	static {
		//BasicConfigurator.configure();
	    Logger root = Logger.getRootLogger();
	    root.addAppender(new ConsoleAppender(
	           new PatternLayout(PatternLayout.DEFAULT_CONVERSION_PATTERN)));
		log = LogFactory.getLog(CU.class);
	}
	
	private static StringBuilder callerInfo(){
		StringBuilder builder = new StringBuilder("[")
									.append(
										new SimpleDateFormat("yyyy/MM/dd HH:mm:ss.SSS")
											.format(new Timestamp(System.currentTimeMillis())));
		StackTraceElement elem = new RuntimeException().getStackTrace()[2];
		builder
			.append(" ")
			.append(elem.getClassName())
			.append(".")
			.append(elem.getMethodName())
			.append("] ");
		return builder;
	}
	public static void debug(Object arg0) {
		log.debug(callerInfo().insert(0, "[DEBUG]").append(arg0));
	}

	public static void info(Object arg0) {
		log.info(callerInfo().insert(0, "[INFO]").append(arg0));
	}

	public static void warn(Object arg0) {
		log.warn(callerInfo().insert(0, "[WARN]").append(arg0));
	}

	public static void error(Object arg0) {
		log.debug(callerInfo().insert(0, "[ERROR]").append(arg0));
	}
}

你可能感兴趣的:(工作,log4j)