我想为我的java Web应用程序构建更高级的日志记录机制,类似于App引擎日志。 我的需求是:
对于第1点,我可以使用"缓冲"实现,将日志放入不同的列表,并定期将cron(线程)收集到内存中的所有日志并将它们写入数据库(也可以在另一台服务器上)
对于第2点,我发现这样做的唯一方法是将所需的对象注入我的类(子系统),如ServletContext,HttpServletReqest,当前用户等,所有这些都被建模为自定义类(让我们说AppLogContext),然后可以由日志记录机制使用。
这里的问题是我不知道这是不是一个好习惯。例如,这意味着许多类必须包含这个对象,该对象可以访问servlet上下文和http请求对象,我认为这可能会产生架构问题(在构建模块,层等时)甚至是安全问题。 / p>
App Engine会自动记录这类信息(更多,如延迟,cpu使用等,但这更复杂),它可以在项目的控制台日志中找到(也可以复制日志)到大型查询表)我需要一些Jetty或其他Java Web应用服务器。
那么,还有另一种方法吗,其他模式,不同的方法? (无法找到任何这些点的第三方库)
谢谢。
答案 0 :(得分:2)
你真的不需要发明一辆自行车。
您可以遵循以下惯例: