log4j 将日志记录限制为仅一个 jar

发布于 2024-12-09 03:52:09 字数 319 浏览 0 评论 0原文

我有一个项目,该项目又被其他几个项目使用。我希望 log4j 仅将我的日志记录到我在属性文件中指定的文件中。其他项目使用自己的日志记录机制,我无法控制它们。我的 log4j 文件不应影响其他项目的日志记录。我应该如何配置我的 log4j 属性文件?

到目前为止,我正在做的是设置 log4j.rootLogger = ERROR 和我的模块 log4j.logger.com.xyz.myproject = INFO, FILE。这会在不影响其他项目记录器的情况下工作吗?或者可能将日志记录限制为仅我的罐子?

谢谢

I have a project which is in turn used by several other projects. I want log4j to log only my logs to a file that I have specified in the properties file. Other project use their own logging mechanisms and I have no control over them. My log4j files should not affect other project's logging. How should i configure my log4j property file?

So far what I'm doing is setting log4j.rootLogger = ERROR and for my module log4j.logger.com.xyz.myproject = INFO, FILE. Will this work without affecting other project's loggers? Or possibly limit logging to only my jar?

Thanks

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

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

发布评论

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

评论(2

电影里的梦 2024-12-16 03:52:09

这取决于其他项目的包结构。假设

  • 其他项目的记录器是由 Logger.getLogger(ClassA.class) 创建的,并且
  • 其中一些依赖于根记录器配置(没有特定的 log4j.category.loggerName 设置)并且
  • 这些项目包含您的项目使用的包的子包(即您的项目的包是 com.abc.def ,其他项目的包在层次结构中更深com.abc.def.ghi 那么

更改 com.abc.def 日志记录级别会影响其他项目 - 他们将开始在 com.def.ghi 定义的级别上记录日志。 abc.def

验证情况并非如此,您应该是安全的。

It depends on the package structure of the other projects. Supposing that

  • loggers from other projects are created by Logger.getLogger(ClassA.class) AND
  • some of them rely on root logger configuration (have no specific log4j.category.loggerName settings AND
  • these projects contain subpackages of the package used by your project (i.e. your project's package is com.abc.def and other projects have packages deeper in the hierarchy com.abc.def.ghi THEN

changing com.abc.def logging level would affect other projects - they'll start logging on the level defined by com.abc.def.

Verify that it's not the case and you should be safe.

冷清清 2024-12-16 03:52:09

我想你的 jar 完全包含在你自己的包中(例如 com.foo.mypackage)。在这种情况下,只需添加到您的 log4j 配置中即可:

# Print only messages of priority WARN or above in the package com.foo
log4j.category.com.foo=WARN
# Print only messages of priority DEBUG or above in the package com.foo.mypackage
log4j.category.com.foo.mypackage=DEBUG

问候,

M。

I suppose your jar is entirely contained in your own package (ex com.foo.mypackage). In this case, is just enough to add to your log4j configuration something like:

# Print only messages of priority WARN or above in the package com.foo
log4j.category.com.foo=WARN
# Print only messages of priority DEBUG or above in the package com.foo.mypackage
log4j.category.com.foo.mypackage=DEBUG

Regards,

M.

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