您的位置:首页 > 编程语言 > Java开发

在logback、log4j等日志输出工具中输出java异常调用堆栈

2016-09-27 09:12 381 查看
使用logback、log2j输出java异常如果采用如下方式:
try{
...
}catch (Exception e){
logger.error("[lid:{}] [{}]<< exception happened! detail:{}", logIndex, logFlag, e);
}
则无法输出异常的调用堆栈,下面这个一个静态工具函数,可以输出异常的堆栈信息,如下:
public static String getExceptionStackTrace(Throwable anexcepObj)
{
StringWriter sw = null;
PrintWriter printWriter = null;
try{
if(anexcepObj != null)
{
sw = new StringWriter();
printWriter = new PrintWriter(sw);
anexcepObj.printStackTrace(printWriter);
printWriter.flush();
sw.flush();
return sw.toString();
}
else
return null;
}finally
{

try
{
if(sw != null)
sw.close();
if(printWriter != null)
printWriter.close();
}
catch (IOException e)
{
e.printStackTrace();
}
}

} 它的使用方式为:try{
...
}catch (Exception e){
logger.error("[lid:{}] [{}]<< exception happened! detail:{}", logIndex, logFlag, getExceptionStackTrace(e));
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: