我正在进行一个项目,将来自多台机器的日志数据组合到一个数据库中。
我必须记录场景:
我用的是logback和JMS。"Client“记录到JMS队列,"Server”读取表单队列并写入DB。
我正在寻找一种简单的方法来区分这两种类型的日志。我想要做的是创建另一个日志级别,例如“审核”,然后我可以在“服务器”端检查它,并创建我们的特殊对象结构并将其写入单独的DB。
但是,这在logback中是不可能的。我考虑过标记,但这意味着开发人员必须显式应用标记。我的另一个选择是有两个独立的记录器,由开发人员获取正确的记录器。这并不是我想要的那么优雅。
我希望开发人员只为调试做log.debug,为错误做log.error,为审计做log.audit。
有什么建议吗,有谁要解决类似的问题?
发布于 2011-03-11 12:44:41
首先,为什么不直接使用DBAppender并直接登录到数据库,跳过JMS层呢?如果您需要考虑性能,则Logback为日志异步记录提供了一些工具。
至于过滤,单独的记录器是最简单和最干净的方法(然后简单地按记录器/类别过滤)。这种方法强调了这样一个事实,即这些日志是特殊的日志,而不是普通的应用程序调试。我甚至会考虑将此审计日志封装在某些服务/方面中,以将其与业务逻辑分离开来。
如果您真的想重用现有的记录器,可以使用Logback 过滤器在运行时分派和过滤事件。
https://stackoverflow.com/questions/5272911
复制相似问题