我正在开发一个在 JBoss 下运行的 Java EE Web 应用程序。
我想做以下事情:当用户发送 http 请求(通过打开页面或通过 AJAX)时,与该请求相关的所有日志都会被收集,然后保存到数据库中。相关是指在处理当前请求的过程中记录它们。最难的部分是收集与单个请求相关的日志。
我正在研究这个解决方案:
JBoss 使用 log4j 进行日志记录。当应用程序启动时,启动监听器注册一个 log4j appender,它将所有日志收集到一个 ThreadLocal 字段中。在请求处理结束时,从现场获取日志并保存到数据库中。
但是,现在看来,log4j 附加程序在其他线程中工作。这使得这个解决方案是不可能的。
你有什么想法,这是怎么做到的?
谢谢,Artem B.