将GlassFish日志文件捕获到SQL / JPA数据库中

时间:2012-09-13 00:30:14

标签: glassfish glassfish-3 java.util.logging

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

我想要做的不是那些记录条目转到文本文件,捕获它们并将它们存入我的SQL数据库。然后,我可以为时间戳和键值添加表格列,以便可以在应用程序中作为管理员网页的一部分轻松搜索,而不必转到管理控制台。也有可能将一些数据暴露给用户。

可以这样做吗?

跟进问题:这可以通过可移植到Tomcat或其他容器的方式完成吗?

1 个答案:

答案 0 :(得分: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(作为库),重启服务器,应该这样做。