代码之家  ›  专栏  ›  技术社区  ›  AlanObject

使用Glassfish测井设施更好吗?

  •  3
  • AlanObject  · 技术社区  · 12 年前

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

    这些都没有坏,所以我很自然地想去修复它。(开玩笑)我真正想知道的是,我是否因为没有使用任何一个已建立的日志API和包以及使用Glassfish之外的设施而错过了什么?我很有兴趣通过推出自己的日志阅读和分析工具来了解我选择退出的任何日志浏览和分析工具。如有任何评论,不胜感激。

    问题更新: 如果我转换为java.util.Logging,是否有一条将日志数据捕获到SQL后端的路径?它非常方便地搜索和查找内容,并且现有的日志记录功能似乎面向输出到文本文件。

    2 回复  |  直到 12 年前
        1
  •  2
  •   Community Ramakrishna.p    4 年前

    这个问题一直萦绕在我的脑海中,和许多问题一样,它只是引出了更多的问题。从哪里开始?

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

    所以 谁是你的听众 ?

    如果:

    • 开发者 ;要帮助诊断问题,请使用j.ul&家庭 自由格式文本 分类为精细*/TRACE/DEBUG/INFO/WARN/SEVERE
    • 管理 ;要监控系统的运行状况,请使用j.u.l.&家庭 自由格式文本 分类为INFO/WARN/SEVERE。
    • 用户(包括支持人员) ;应用程序报告、统计数据等。你需要特定的数据列(用户名、公司、IP地址、操作/事件等)吗?-建立自己的数据表,特别是如果你想要实时的数据表。

    如果你需要比一行文字更多的“带宽”,j.u.l.&家庭不适合你。

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

    最后说明

    通过调用适当的log.info()语句将DB/表驱动的日志详细信息捕获到诊断日志记录工具中是微不足道的,相反会有点困难。不要仅仅因为对另一个的好奇就把它扔掉。

        2
  •  1
  •   jonathan.cone    12 年前

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