1

我需要一点帮助才能开始。我有一个新的 JSF-2 Web 应用程序,打算在 GlassFish 3.1(或更高版本)下部署。通常,服务器将其所有日志文件作为文本存储在其私有目录之一中,其中还包括我使用 ether System.println( .. )或类似java.util.logging.Logger.getLogger( ... )所做的日志记录

我想要做的不是将那些日志条目转到文本文件,而是捕获它们并将它们归档到我的 SQL 数据库中。然后,我可以为时间戳和键值添加表列,这样就可以轻松地将其作为应用程序中管理网页的一部分进行搜索,而不必转到管理控制台。也可以将其中一些数据暴露给用户。

这可以做到吗?怎么做?

后续问题:这可以以可移植到 Tomcat 或其他容器的方式完成吗?

4

1 回答 1

1

您将需要编写自定义日志处理程序。自定义日志处理程序是一个扩展类java.util.logging.Handler

package test.stackoverflow;
import java.util.logging.Handler;
..
public class AlanHandler extends Handler {
..
        @Override
        public void publish(LogRecord record) {
              //CODE THAT STORES LOG RECORD INTO THE DATABASE
        }
}

此外,您将不得不稍微更改logging.properties文件:

handlers=java.util.logging.ConsoleHandler, test.stackoverflow.AlanHandler

在 Glassfish 上部署 AlanHandler 的 JAR(作为库),重新启动服务器就可以了。

于 2012-11-16T08:35:48.910 回答