gpt4 book ai didi

java - 为什么像 java.net.InetAddress 这样的 Java 类不记录任何内容?

转载 作者:行者123 更新时间:2023-12-02 19:08:41 26 4
gpt4 key购买 nike

像这样的类有什么特殊原因吗?java.net.InetAddress 不记录一行?

对于某些情况,从 Java 库类中获取一些调试信息可能会变得非常方便。

最佳答案

  1. 有很多日志框架。 Java 尝试添加自己的日志记录,但为时已晚,而且 Java 内置的日志记录也遥遥无期。这让我们回到:它应该使用什么? java.util.log,除了很少有人使用它? slf4j?它不是通用的,而且考虑到 j.u.log 的存在,这会有点奇怪。又一个元层?

  2. 您希望 INetAddress 记录什么?创建?如果您想记录某些特定类的创建,可以使用其他工具,无需将日志内容乱扔到代码中。这种通用工具(一种可以记录某些特定类型的创建或某些特定方法的调用,无论何时何地完成的通用工具)将一举让您能够记录所有您需要的内容。核心类,以及任何其他库中不按您想要的方式记录内容的任何其他类/方法。

  3. 日志记录绝对不是免费的。打开文件来写入数据实际上是非常昂贵的,并且许多核心库的编写都必须忽略 knuth 的格言(过早的优化是万恶之源 - 陈词滥调,过于简单化,但这是一个流行的说法) - 因为各种代码使用核心库,因此必须进行一定程度的微优化。如果默认情况下,日志框架实际上并不最终日志记录(由于例如级别设置),那么日志框架会变得更快,但您仍然需要进行查找以检查是否应该正在记录某件事。

更一般地说,对于大多数核心库堆栈来说,日志记录似乎不合适:日志最好用于引发重要事件(核心库不知道什么是重要的,它几乎按照定义不是“终点”代码) ,并跟踪流程的流程,但大多数核心库只执行一项任务,这意味着“记录它”可以归结为“记录方法调用”,这让我们回到#2:你可以这样做,但你不可以需要 java 核心代码来显式包含日志行。

关于java - 为什么像 java.net.InetAddress 这样的 Java 类不记录任何内容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64668593/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com