【发布时间】:2026-01-15 16:15:02
【问题描述】:
我使用SLF4J 作为日志外观,让用户决定在哪里以及记录什么。现在万一发生崩溃,我想向服务器发送一个包含调试信息的文件——这基本上意味着一个日志文件。既然我们已经将所有日志语句分散在代码中,为什么不使用它们呢?
所以基本上,我想通过 SLF4J 以编程方式创建一个日志文件,对仍然可以插入自己的日志后端和配置的用户透明。
我的第一个想法是实现org.slf4j.impl.StaticLoggerBinder,提供我自己的记录器实现,该记录器进行记录,然后委托给用户配置的记录器。但是,我看到了一些问题:如果用户放置了一个正常的日志记录后端,那么org.slf4j.impl.StaticLoggerBinder 的多个实例在类路径上。这将发出警告,我可能无法确定我的实现是被调用的。
有没有更好的解决方案?完全不同的方法?这个想法本质上是坏的吗?如何做到这一点?
【问题讨论】:
标签: java logging remote-debugging slf4j