java – 转换e.printStackTrace()以改为使用log4j
发布时间:2020-12-14 16:22:34 所属栏目:Java 来源:网络整理
导读:我对log4j很新.我不想在我的日志文件中显示异常堆栈跟踪,例如 java.lang.IllegalArgumentException: nodeRef is a mandatory parameterat org.alfresco.util.ParameterCheck.mandatory(ParameterCheck.java:42) 这些异常通过使用e.printStackTrace()直接写入
我对log4j很新.我不想在我的日志文件中显示异常堆栈跟踪,例如
java.lang.IllegalArgumentException: nodeRef is a mandatory parameter at org.alfresco.util.ParameterCheck.mandatory(ParameterCheck.java:42) 这些异常通过使用e.printStackTrace()直接写入控制台 try { // something } catch(Exception e) { StringWriter stack = new StringWriter(); e.printStackTrace(new PrintWriter(stack)); logger.debug("Caught exception; decorating with appropriate status template : " + stack.toString()); } 我现在正在定制一个开源项目,而不是自己编写我的所有程序. 据我所知,log4j用logger打印的日志可以通过使用log4j错误级别来配置,例如info,debug,warn.But如何直接写入控制台或文件? 如何配置log4j不打印只有异常堆栈跟踪但显示其他信息?有办法解决吗? 解决方法
代码
StringWriter stack = new StringWriter(); e.printStackTrace(new PrintWriter(stack)); logger.debug("Caught exception; decorating with appropriate status template : " + stack.toString()); 只是Log4j API使用错误的一个例子.但是,如果您坚持使用它,除了将日志级别提高到调试之外并且省略整个消息之外,您将无需执行任何操作. 可能有一种方法可以截断所有日志消息,这可以在一定程度上缓解您的问题. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |