欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

用logger 输出printStackTrace() log4jException 

程序员文章站 2022-07-15 09:20:39
...
public class HelloLog4jChild extends HelloLog4j {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		logger.debug("This is debug message!");
		logger.info("This is info message!");
		logger.error("This is error message!");
		HelloLog4jChild object = new HelloLog4jChild();
		try {
			object.testMethod();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			//e.printStackTrace();
			logger.error("HelloLog4jException", e);
		}
	}

	public void testMethod() throws Exception {
		try {
			testMethod2();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			// e.printStackTrace();
			throw new ClassNotFoundException("test1 Exception", e);
		}

	}

	public void testMethod2() throws Exception {

		throw new ClassNotFoundException("test2 Exception");
	}

}

使用logger.error("ExceptionName",e),可以很轻松的将printStackTrace()输出到log文件中(printStackTrace()是将错误的堆栈信息输出到Console中)。

引用
[11/07/27 13:18:58:812][com.zsk.log4j.demo1.HelloLog4jChild-main] This is info message!
[11/07/27 13:18:58:828][com.zsk.log4j.demo1.HelloLog4jChild-main] This is error message!
[11/07/27 13:18:58:828][com.zsk.log4j.demo1.HelloLog4jChild-main] HelloLog4jException
java.lang.ClassNotFoundException: test1 Exception
at com.zsk.log4j.demo1.HelloLog4jChild.testMethod(HelloLog4jChild.java:29)
at com.zsk.log4j.demo1.HelloLog4jChild.main(HelloLog4jChild.java:15)
Caused by:
java.lang.ClassNotFoundException: test2 Exception
at com.zsk.log4j.demo1.HelloLog4jChild.testMethod2(HelloLog4jChild.java:36)
at com.zsk.log4j.demo1.HelloLog4jChild.testMethod(HelloLog4jChild.java:25)
... 1 more

注意Caused by:是不同层级的Exception所产生的
throw new ClassNotFoundException("test1 Exception", e);
相关标签: log4j Exception