当前位置: 首页 > 知识库问答 >
问题:

Java中跨类实现记录器的标准方法?

薛鹏飞
2023-03-14

我正在构建一个包含许多类的Javafx应用程序。我想使用所有类的java日志记录。但所有选项似乎都伴随着过多或重复的代码。以下是我能想到的:

>

  • 声明Logger为每个类中的私有静态最终字段,即:

    私有静态最终记录器LOGGER=Logger.get记录器(MyClass.class.getName());

    这个选项似乎有点烦人,每次上课都要这么做。

    又一次似乎不优雅

    你们怎么处理这种情况?这只是选择最不坏的选项的问题吗?

  • 共有2个答案

    苏选
    2023-03-14

    我不同意第三个选项的“过度性”:实际上,“包装器”选项非常优雅,因为它有一个专门的logger类(SRP),允许您在“引擎盖下”切换实现(log4j、apache commons logging、java.util.logging等),而无需将其余代码耦合到该实现。

    正如Luiggi在下面的评论中提到的SLF4J就是这样的实现。

    周健
    2023-03-14

    选项1加上选项3(比如人们提到的使用slf4j这样的包装器)将允许在实现之间切换,因此被广泛使用。

    declare Logger as a private static final field in each class i.e.
    
    private static final Logger LOGGER = Logger.getLogger(MyClass.class.getName());
    

    声明记录器并不是什么大事,您应该能够在IDE中定义一个新的类模板,自动生成记录器代码。

     类似资料:
    • 本文向大家介绍JavaScript记录光标在编辑器中位置的实现方法,包括了JavaScript记录光标在编辑器中位置的实现方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JavaScript记录光标在编辑器中位置的实现方法。分享给大家供大家参考,具体如下: 更多关于JavaScript相关内容可查看本站专题:《JavaScript切换特效与技巧总结》、《JavaScript查找算法技巧

    • 问题内容: 构造之后,使用标准的Java日志记录API(导入java.util.logging.Logger): 我已经可以登录了。由于它没有FileHandler,因此不会向磁盘写入任何内容。 它写入(不是全部)日志消息以输出。如何禁用此功能?在此先感谢Agostino 问题答案: 如果您不知道Java util日志记录的默认配置,就会出现问题。体系结构事实:0)每个记录器(无论其名称是什么)都

    • 问题内容: 我不知道如何将信息级别的消息记录到stdout,但将其他所有内容记录到stderr。我已经阅读了http://docs.python.org/library/logging.html。有什么建议吗? 问题答案: 以下脚本: 运行时,产生以下结果。 正如你所期望的,因为在终端上,并是相同的。现在,让我们将标准输出重定向到文件: 因此,INFO消息没有被打印到终端-但指示消息 已 被打印。

    • 本文向大家介绍Java中checkbox实现跨页多选的方法,包括了Java中checkbox实现跨页多选的方法的使用技巧和注意事项,需要的朋友参考一下 最近要实现一个功能,就是checkbox跨页多选,在网上看了一下,资料很少,而且大多是不完全的。不过经过我的努力,终于做出来了。     JSP页面:    1,定义三个Hidden变量:     2,javascript    每次翻页的时候调用

    • 下面是记录和类的代码示例 执行后,上述代码的输出为: 有谁能帮我了解一下record的默认equals和hashcode实现的行为与上面有什么不同吗? 如果equals和hashcode实现中有更改,则进行记录。那么请帮助我理解这个变化的确切目的是什么,以及在哪些情况下使用它会更有帮助。 提前感谢!!