我需要一些帮助才能开始。我有一个新的JSF-2 Web应用程序,我打算在GlassFish 3.1(或更高版本)下部署。通常,服务器将其所有日志文件作为文本存储在其私有目录中,其中还包括我使用ether System.println(..)或类似 java.util的日志记录。 logging.Logger.getLogger(...)
我想要做的不是那些记录条目转到文本文件,捕获它们并将它们存入我的SQL数据库。然后,我可以为时间戳和键值添加表格列,以便可以在应用程序中作为管理员网页的一部分轻松搜索,而不必转到管理控制台。也有可能将一些数据暴露给用户。
可以这样做吗?
跟进问题:这可以通过可移植到Tomcat或其他容器的方式完成吗?
答案 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(作为库),重启服务器,应该这样做。