我正在寻找一种定义传递日志消息路由的方法。假设我们有一个名为poly的应用程序:
com.mycompany.server-common
com.mycompany.communication
com.mycompany.webservice
server-common被其他两个人使用。所有3个也使用org.hibernate。
现在,我喜欢为webservice组件提供1个日志文件,其中包含来自com.mycompany.webservice的所有消息以及来自web服务启动的com.mycompany.server-common和org.hibernate的消息。然后,另一个通信包的相应文件。
我的应用程序是在tomcat中运行的war文件,其中所有组件都在1个上下文中运行(它来自1个war文件)。我已经定义了多个日志文件,但它们自然只记录我静态定义的内容,没有传递包含。
我对如何实现理想行为的想法非常感兴趣。我已经考虑过使用MDC,但我不确定这是不是一个好主意。 另一个想法是分离上下文,但我认为在目前的项目状态下,这将很难,并且它不能提供我希望的灵活性。
赞赏任何提示或讨论。
答案 0 :(得分:2)
如果在webservice开始提供请求时设置MDC密钥并在请求结束时清除MDC密钥,则SiftingAppender将按您的要求执行操作。如果遇到困难,请在logback用户邮件列表上大喊。