java logerror_关于java:如何使用logger打印异常?

在这种情况下,我希望使用logger打印catch块中捕获的所有异常。

try {

File file = new File("C:\\className").mkdir();

fh = new FileHandler("C:\\className\\className.log");

logger.addHandler(fh);

logger.setUseParentHandlers(false);

SimpleFormatter formatter = new SimpleFormatter();

fh.setFormatter(formatter);

} catch (Exception e) {

logger.info(e);

}

我知道错误记录器不能应用于java.io.Exception...。

我担心的是,如果我在try块中做了这么多事情,并且只保留一个catch块作为catch(异常E),那么有没有任何方法可以使用记录器来打印catch块中捕获的任何异常?注意:我们使用的是java.util.logging.logger API

stackoverflow.com/a/1149718/112500

stackoverflow.com/questions/1149703/…的可能副本

通常,日志文件名、格式等都放在代码之外,以便在生产中对其进行调整。

您可能应该澄清您使用的是哪个记录器。

org.apache.commons.logging.Log接口有方法void error(Object message, Throwable t)和方法void info(Object message, Throwable t)记录堆栈跟踪和自定义消息。log4j实现也有这个方法。

所以,你可能需要写:

logger.error("BOOM!", e);

如果您需要使用信息级别来记录它(尽管,这可能是一个奇怪的用例),那么:

logger.info("Just a stack trace, nothing to worry about", e);

希望有帮助。

@Kadelakig抱歉,我们正在使用java.util.looging API

哦,我明白了。似乎还有一些类似的功能:java.util.logging.Logger.getLogger("Test").log(Level.INFO,"BOOM!", e);

是的,这有助于我寻找的东西

使用:LOGGER.log(Level.INFO,"Got an exception.", e);

或LOGGER.info("Got an exception." + e.getMessage());

如果异常是意外的,那么我建议对日志消息使用严重警告日志级别

是的,对于可能是真的意外异常。不过,我回答了这个问题,提问者在哪里使用信息日志级别进行日志记录,因此我的示例使用信息。

尝试如下记录堆栈跟踪:

logger.error("Exception ::" , e);

我尝试了这个方法,得到了错误符号没有找到的符号:方法错误(java. Lang.Stand,java. Io.IOExt)位置:类java. UTIL.Loggg.Logger-Logg.Error("异常::",e);

@Pankaj不是用log4j来记录日志吗?该方法存在于org.apache.log4j.Logger中。

可以使用此方法将异常堆栈记录为字符串

public String stackTraceToString(Throwable e) {

StringBuilder sb = new StringBuilder();

for (StackTraceElement element : e.getStackTrace()) {

sb.append(element.toString());

sb.append("

");

}

return sb.toString();

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值