使用 logback 进行基于组件的日志记录(或:拦截外部日志消息)

发布于 2024-12-10 07:39:51 字数 740 浏览 0 评论 0原文

我正在寻找一种定义传递日志消息路由的方法。假设我们有一个名为 poly 的应用程序,其中包含以下软件包:

com.mycompany.server-common
com.mycompany.communication
com.mycompany.webservice

server-common 被另外 2 个软件包使用。所有 3 个也都使用 org.hibernate。

现在,我希望 Web 服务组件有 1 个日志文件,其中包含来自 com.mycompany.webservice 的所有消息以及由 Web 服务启动的来自 com.mycompany.server-common 和 org.hibernate 的消息。然后是通信包的另一个对应文件。

我的应用程序是一个在 tomcat 中运行的 war 文件,其中所有组件都在 1 个上下文中运行(它位于 1 个 war 文件中)。我已经定义了多个日志文件,但它们自然只记录我静态定义的内容,没有传递包含。

我对如何实现所需行为的想法非常感兴趣。我已经考虑过使用 MDC 来实现此目的,但我不确定这是否是一个好主意。 另一个想法是分离上下文,但我认为在当前的项目状态下这将很困难,并且它不能提供我希望的灵活性。

任何提示或讨论都值得赞赏。

I'm looking for a way to define transitive log message routing. Let's say we have an application called poly with these packages:

com.mycompany.server-common
com.mycompany.communication
com.mycompany.webservice

server-common is used by both of the 2 others. All 3 use org.hibernate as well.

Now, I like to have 1 logfile for the webservice component with all messages from com.mycompany.webservice and with those messages from com.mycompany.server-common and org.hibernate that were initiated by the webservice. And then, another coresponding file for the communication package.

My application is a war file running in tomcat, where all components run in 1 context (it comes in 1 war file). I already defined the multiple log files, but they naturally only log that what i defined statically, there is no transitive inclusion.

I would be very interested in ideas how I could achieve the desired behaviour. I already thought about using the MDC for that, but I'm not sure if that's a good idea.
Another idea was to separate the contexts, but I think in the current project state this will be hard and it does not offer the flexibility I hope for.

Any hints or discussions are appreciated.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

风流物 2024-12-17 07:39:51

如果您在 Web 服务开始服务请求时设置 MDC 密钥并在请求结束时清除 MDC 密钥,则 SiftingAppender 将执行您所要求的操作。如果您遇到困难,请在 logback-user 邮件列表上留言。

If you set an MDC key when webservice starts serving a request and clear the MDC key at the end of the request, SiftingAppender will do what you are asking. Shout on the logback-user mailing list if you run into difficulties.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文