java – 如何接收slf4j日志记录,仍然不依赖于记录后端?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了java – 如何接收slf4j日志记录,仍然不依赖于记录后端?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1283字,纯文字阅读大概需要2分钟。
内容图文
![java – 如何接收slf4j日志记录,仍然不依赖于记录后端?](/upload/InfoBanner/zyjiaocheng/721/d4cdf752e4ef4f2884e0399568d45085.jpg)
我使用SLF4J作为日志记录,让用户决定记录的位置和内容.现在发生崩溃,我想将一个文件发送到包含调试信息的服务器 – 这基本上就是一个日志文件.既然我们已经将所有日志语句分散在代码中,为什么不使用它们呢?
所以基本上,我想通过SLF4J以编程方式创建一个日志文件,对于仍然可以插入自己的日志后端和配置的用户来说是透明的.
我的第一个想法是实现org.slf4j.impl.StaticLoggerBinder,提供我自己的记录器实现,该记录器执行其日志记录,然后委托给用户配置的记录器.但是,我看到了一些问题:如果用户放置了正常的日志记录后端,那么org.slf4j.impl.StaticLoggerBinder的多个实例都在类路径上.这将发出警告,我可能无法确定,我的实现是被调用的.
有更好的解决方案吗?一个完全不同的方法?这个想法本身就不好吗?怎么做到这一点?
解决方法:
由于SLF4J是开源的,因此您可以将其修改为使用除org.slf4j.impl.StaticLoggerBinder之外的其他类.然后,您的自定义StaticLoggerBinder类可以加载原始的,用户提供的org.slf4j.impl.StaticLoggerBinder(如果存在).
另一个想法是在您的应用程序中使用自定义LoggerFactory(而不是org.slf4j.LoggerFactory),它返回一个Logger委托.此委托类委托日志记录方法调用原始Logger实现,并在必要时将日志发送到服务器.
无论如何,两者对我来说都是一个尴尬的黑客,创建两个工件(一个用于最终用户,另一个用于开发人员)闻起来更好.
(最后,我不知道它是什么类型的库/应用程序,但是在我的工作环境中,如果库将数据发送到第三方服务器是不可接受的.你确定你真的需要这样做吗? )
内容总结
以上是互联网集市为您收集整理的java – 如何接收slf4j日志记录,仍然不依赖于记录后端?全部内容,希望文章能够帮你解决java – 如何接收slf4j日志记录,仍然不依赖于记录后端?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。