【问题标题】:How to log stackTrace without throwing the Exception in grails如何记录stackTrace而不在grails中抛出异常
【发布时间】:2010-12-06 15:56:57
【问题描述】:

在某些情况下,我想捕获一个异常,但仍然在通过 grails 中的 Log4J 属性定义的 stackTrace 日志中显示堆栈跟踪。我该怎么做?

我知道我可以使用 log.error myException.stackTrace 将其写入“正常”日志,但我不希望堆栈跟踪填满我的正常日志文件。

【问题讨论】:

  • 我不知道 Java(不再)或 Log4J(不再)或 Grails - 但我认为你可以做任何编程语言的标准。您可以抛出异常并捕获它。这样,任何异常都不会泄漏到您的日志中。除非你不想在非异常情况下抛出异常——我完全同意——并且你问的是如何在 Java 中获取当前堆栈帧。
  • 我确实发现了异常。而且我还希望堆栈跟踪出现在日志中,如果我抓住它,情况并非如此。

标签: logging grails log4j try-catch stack-trace


【解决方案1】:

grails 已经生成了一个堆栈跟踪日志。

您可以获取该记录器,然后将您的日志语句添加到异常的 catch 块中

LogManager.getLogger("StackTrace")

http://grails.org/doc/latest/guide/3.%20Configuration.html#3.1.2%20Logging

【讨论】:

  • 是的,但是捕获的异常的堆栈跟踪没有出现在那里!我怎样才能捕获异常并且仍然​​在堆栈跟踪日志中记录堆栈跟踪?
  • 就是这样 - 谢谢!我可以使用 org.apache.log4j.LogManager.getLogger("StackTrace").error myMessage, myException 记录完整的 Stacktrace
猜你喜欢
  • 2016-09-02
  • 2014-03-26
  • 2012-01-24
  • 2010-10-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-23
  • 1970-01-01
相关资源
最近更新 更多