Java中为什么用log4j的error方法记录异常到控制台,有的时候会打印栈轨迹,有的时候就只有

Java中为什么用log4j的error方法记录异常到控制台,有的时候会打印栈轨迹,有的时候就只有异常的名字而没有栈轨迹,完全不知道异常从哪一行抛出来的啊

是这样的,如果获取了异常,把异常作为最后一个参数打出来,那么可以打出异常的stack,否则不行。也就是说
try{
.......
}
catch(Exceptoin e){
log.error("运行异常",e); //可以获取异常的stack
log.error("运行异常"); // 只能获取运行异常几个字
log.error(e); //会调用e的toString方法,可以获取异常的Message,但没有stack
log.error(e.getMessage);//可以得到异常的message ,没有stack
}
温馨提示:内容为网友见解,仅供参考
无其他回答

JAVA异常问题
这个方式就是栈输出 把异常输出下而已 没有实际的作用 用log4j的话 有专门记录错误的方式 就是用error

slf4j怎么打印java错误堆栈信息throwable对象
slf4j日志方法都有参数类似上面的方法,直接将Throwable作为参数传入,具体会不会答应异常堆栈信息要看实际使用的日记记录方法,如果是log4j,在记录了arg0的信息后,会自动记录arg1的堆栈信息。

实际JAVAWEB项目中如何处理异常消息
这个Servlet里有好多异常处理的语句,以前学习JAVA的时候,catch语句中就用e.printStackTrace();简单把异常信息输出到控制台就OK了,可现在做这个简单WEB应用的时候突然觉得其中的异常不知道该怎么处理了,主要是那些异常信息,总不能不管吧。就是想请教各位WEB开发方面的前辈们,这里的异常到底该怎么处理,异常信息该输出到...

java基础都有那些?
例子中的方法1,前面定义的数据类型为void, 所以方法中不能有return返回值,方法4中因为有return返回值,所以前面必需定义为返回值的类型,也就是m4前面那个int 九、递归调用 递归调用是指在方法执行过程中出现该方法本身的调用 先看一个例子,这是一个简单的递归调用: 简单分析下: 1.首先main主方法中输出字符串,内容...

struts2 如何将拦截器里产生的异常信息输入到统一的错误页面中?
如果在Action中使用了try{}catch{}处理异常,异常信息直接打印到tomcat控制台,如果是抛出的话,控制台看不到信息,但又想看异常信息,以便排错,可以使用如下方法:Struts2 XML:<exception-mapping result="exception" exception="java.lang.Exception"><\/exception-mapping> <result name="exception">...

相似回答