Jsf 使用玻璃鱼伐木设施更好吗?

Jsf 使用玻璃鱼伐木设施更好吗?,jsf,logging,glassfish,glassfish-3,Jsf,Logging,Glassfish,Glassfish 3,我的JSF应用程序部署在Glassfish的最新版本中,使用EclipseLink作为JPA提供者。我编写了一个相当简单的日志记录工具,将日志记录存储在JPA数据库中。日志表的列包括时间戳(当然)、日志记录类型的枚举键字段、当前用户ID、网络地址和字符串消息 这些都没有坏,所以我自然想去修理它。(开玩笑)我真正想知道的是,如果我不使用一个已建立的日志API和包,使用Glassfish之外的工具,我是否遗漏了什么?我很想通过自己的方式了解我选择退出的任何日志阅读和分析工具。如有任何评论,将不胜感激

我的JSF应用程序部署在Glassfish的最新版本中,使用EclipseLink作为JPA提供者。我编写了一个相当简单的日志记录工具,将日志记录存储在JPA数据库中。日志表的列包括时间戳(当然)、日志记录类型的枚举键字段、当前用户ID、网络地址和字符串消息

这些都没有坏,所以我自然想去修理它。(开玩笑)我真正想知道的是,如果我不使用一个已建立的日志API和包,使用Glassfish之外的工具,我是否遗漏了什么?我很想通过自己的方式了解我选择退出的任何日志阅读和分析工具。如有任何评论,将不胜感激


更新问题:如果我转换为java.util.Logging,是否有一个路径可以将日志数据捕获到我的SQL后端?它非常方便搜索和查找资料,而且现有的日志记录工具似乎面向输出到文本文件。

您主要错过了了解Java工具箱中两种最流行的日志记录方式。那些是java.util.logging和带有log4j的commons日志。是的,还有其他的,但是如果你想让你的应用闻起来像一个JavaEE应用,你会想利用其中的一个。我相信Glassfish利用了七月,所以你可以从那里开始。这些库具有可配置的附加器,用于记录到数据库、文件甚至发送SMS文本消息。如果您坚持这些库提供的指定配置方法,您还将拥有其他开发人员已经知道如何使用的细粒度日志控制。

这个问题一直萦绕在我的脑海中,就像许多人一样,它只会引出更多的问题。从哪里开始

java.util.logging(j.u.l)、commons logging、Log4J等以及所有其他变体传统上都是面向诊断和管理日志的(我真的很努力不说是有意的)。它们不是应用程序“事件”日志的理想选择-这取决于您对事件的定义。该语句背后的主要论点是,这些工具严格面向从代码中捕获文本字符串

那么,你的听众是谁

如果:

  • 开发者;要帮助诊断问题,请使用j.u.l&family作为自由格式文本,分类为FINE*/TRACE/DEBUG/INFO/WARN/SEVERE
  • 管理;要监控系统的运行状况,请使用j.u.l&family作为分类为INFO/WARN/SEVERE的自由格式文本
  • 用户(包括支持人员);应用程序报告、统计数据等。您是否需要特定的数据列(用户名、公司、IP地址、操作/事件等)。-建立您自己的数据表,特别是如果您需要实时数据表的话
如果你需要比一行文字更多的“带宽”,j.u.l&family不适合你

一些诊断记录器将允许您创建自定义类别——例如,我相信Log4J可以。大多数常见的替代方案都没有(如果有的话,j.u.l显然做得不好)

最后说明
通过调用适当的log.info()语句,将DB/表驱动的日志细节捕获到诊断日志记录工具中是很简单的,反之则有点困难。不要仅仅出于对另一个的好奇就扔掉它。

好吧,但是如何在java.util和log4j之间进行选择呢?