微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

java – 转换e.printStackTrace()以改为使用log4j

我对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());
}

我现在正在定制一个开源项目,而不是自己编写我的所有程序.
所以不可能删除e.printstacktrace();在所有的java文件中.

据我所知,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使用错误一个例子.但是,如果您坚持使用它,除了将日志级别提高到调试之外并且省略整个消息之外,您将无需执行任何操作.

可能有一种方法可以截断所有日志消息,这可以在一定程度上缓解您的问题.

原文地址:https://www.jb51.cc/java/125637.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐