首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Java中使用commons.logging记录异常?

在Java中使用commons.logging记录异常?
EN

Stack Overflow用户
提问于 2012-12-14 20:11:50
回答 2查看 4.4K关注 0票数 5

我在Java应用程序中使用commons日志记录,并希望从堆栈跟踪中记录异常。

代码语言:javascript
运行
复制
 catch( IOException exception ) {
    logger.error( "IOException Occured :", exception.fillInStackTrace() ); 

       //Print the entire stack trace to log file.
      throw new AsExceptionUtl( APPMessageHelper.getMessage( APPMessageConstants.ERROR_FailedLoadFile, documentPath ) );
   }

这条路对吗?它会打印日志中的堆栈跟踪吗?

EN

Stack Overflow用户

发布于 2012-12-14 20:28:52

Apache commons logging解释说:在互联网上没有太多关于这方面的文档。这是一篇对你有益的小文章:

为了在java代码中记录消息,您需要在源代码中导入两个类。

代码语言:javascript
运行
复制
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

现在,要创建日志,请使用以下两种方法之一在类中创建属性:

代码语言:javascript
运行
复制
   private Log m_log = LogFactory.getLog(MyClass.class);

代码语言:javascript
运行
复制
   private Log m_log = LogFactory.getLog("MyClassLogger");

第一个选项是为您的类创建一个通用日志记录器,它将由默认的日志记录选项控制。第二个选项是创建一个特定的记录器,您将其命名为‘MyClassLogger’,它可以单独控制为默认值。如果您使用其他使用日志记录的第三方源代码,但又不希望看到来自该源代码的调试或其他信息,则可能需要执行此操作。使用记录器非常简单。您可以通过调用优先级对应的方法发送日志消息:

代码语言:javascript
运行
复制
m_log.fatal(Object message);
m_log.fatal(Object message, Throwable t);
m_log.error(Object message);
m_log.error(Object message, Throwable t);
m_log.warn(Object message);
m_log.warn(Object message, Throwable t);
m_log.info(Object message);
m_log.info(Object message, Throwable t);
m_log.debug(Object message);
m_log.debug(Object message, Throwable t);
m_log.trace(Object message);
m_log.trace(Object message, Throwable t);

这些方法按照优先级从高到低的顺序列出。默认情况下,Commons日志设置为显示来自INFO或更高版本的所有消息。如你所见,每个方法都被一个方法重载,你可以在其中发送一个Throwable类型,比如一个异常--非常方便!这就是记录消息所要做的全部工作。

在您的示例中,您只需使用:

代码语言:javascript
运行
复制
  logger.error("IOException Occured :", exception); 

不需要调用stackTrace,因为这里的异常对象将与抛出的异常一起记录。

票数 2
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13878456

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档