首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java中的printStackTrace与Logger框架

Java中的printStackTrace与Logger框架
EN

Stack Overflow用户
提问于 2016-11-23 15:29:32
回答 2查看 1.7K关注 0票数 2

在Java中,异常处理可以通过多种方式进行。让我们使用日志框架(如log4jsl4j )区分异常处理,这两个框架都可以将日志重定向到一个文件中,以处理异常。

如果不使用Logger框架,而是使用异常类方法printStackTrace()来处理异常并通过将异常调用堆栈重定向到文件而不是标准错误输出/控制台来获得异常调用堆栈,那么现在有以下问题:

  1. 后面的实现会处理异常吗? OR只会将异常打印到文件中吗?
  2. 在生产环境中,实现Logger框架比printStacktrace()更倾向于什么理由?

提前感谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-11-23 15:49:22

对于2)日志框架不是更好的文件处理程序,但是,例如,从代码中提取日志记录的配置。因此,当您更改配置(例如,用于开发和生产的日志的其他详细级别)时,您不必更改代码--您只需在每个测试阶段使用其他日志框架配置。如果要更改日志文件名、日志文件大小(旋转)或不同包或类的特定日志细节,则可以通过修改配置轻松地做到这一点。

票数 0
EN

Stack Overflow用户

发布于 2016-11-23 23:20:26

您不应该使用printStackTrace()有很多原因,而且,一旦这不是最近的事,让我们不要重开方向盘(特别注意上帝完美的例外环节,确实非常好)。

日志框架允许我们做很多事情(这么多):

  • 把我们的日志同时送到不同的地方。它们中的大多数都附带了几个附加程序,比如控制台和文件输出,以及使用电子邮件或JMS发送日志消息,例如;
  • 使用严重级别、来源、筛选键环等自定义消息;
  • 基于xml/属性文件的简单定制配置,无需更改Java代码;
  • 良好的异步处理,主要用于分布式系统;
  • 详细的配置,设置记录异常的方式;
  • 等。

特别是定制的appender特性是很棒的,因为我们可以将日志发送到非文件目的地,如扣篮相扑逻辑洛格利原木存放物等,就像现在许多公司在分析和监视其生产系统时所做的那样。

另外,考虑分析正确的日志记录框架满足您的需求。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40768376

复制
相关文章

相似问题

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