Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/visual-studio-code/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么像Java.net.InetAddress这样的Java类不记录任何东西?_Java_Logging - Fatal编程技术网

为什么像Java.net.InetAddress这样的Java类不记录任何东西?

为什么像Java.net.InetAddress这样的Java类不记录任何东西?,java,logging,Java,Logging,有没有一个特殊的原因使类喜欢 java.net.InetAddress不记录一行吗 在某些情况下,从Java库类中获取一些调试信息可能非常方便 有很多日志框架。Java试图添加自己的日志,但那时为时已晚,Java的内置日志记录也是遥不可及的。这让我们回到:它应该用什么java.util.log,除了少数人使用它之外?slf4j?考虑到j.u.log的存在,它不是通用的,也有点奇怪。还有另一个元层吗 您希望INetAddress记录什么?创造如果您想记录某个特定类的创建,那么还有其他工具,不需要

有没有一个特殊的原因使类喜欢 java.net.InetAddress不记录一行吗

在某些情况下,从Java库类中获取一些调试信息可能非常方便

  • 有很多日志框架。Java试图添加自己的日志,但那时为时已晚,Java的内置日志记录也是遥不可及的。这让我们回到:它应该用什么
    java.util.log
    ,除了少数人使用它之外?slf4j?考虑到j.u.log的存在,它不是通用的,也有点奇怪。还有另一个元层吗

  • 您希望INetAddress记录什么?创造如果您想记录某个特定类的创建,那么还有其他工具,不需要在代码中乱扔日志。这样的通用工具(可以记录特定类型的创建或特定方法的调用的通用工具,无论何时何地都可以记录)将一举为您提供记录所有核心类所需内容的能力,以及来自任何其他库的任何其他类/方法,这些类/方法不按您希望的方式记录内容

  • 日志记录显然不是免费的。打开一个文件来写数据实际上是非常昂贵的,而且很多核心库的编写都必须忽略knuth的格言(过早优化是所有邪恶的根源——陈词滥调、过于简化,但这是一句流行的话)——因为各种代码都使用核心库,所以它们必须在一定程度上进行微优化。如果默认情况下,日志框架不会真正结束日志记录(例如,由于级别设置),那么日志框架会变得更快,但您仍然需要进行查找以检查是否应该记录某件事情


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

    ?嗯,弱参数,不是吗?所有类的主要目的不是记录日志。不管怎样,他们都是为了帮助他们的用户获得洞察力。你有没有想过具体的情况?它可能会记录数百行,所以…你认为它应该记录什么?由于日志记录不是免费的,这是有问题的。另外,操作系统会记录网络内容,因此双重簿记可能没有多大用处。我想知道主机名的ip地址是从缓存中获取的还是通过查询dns服务器获取的。1)由于Java有自己的日志库,因此这将是我更喜欢的日志库。添加日志消息永远不会太迟。2) 例如,如果已解析的备份是从缓存中获取的,则记录日志。3) 是的,但是检查布尔条件并没有那么昂贵。应该注意的是,InetAddress在7月之前就已经存在了。出于3)中给出的原因,在以后的版本中更改这样一个低级类的实现和性能可能太冒险了。@Oliver so,你认为社区中80%以上的人会被冷落这一事实无关紧要吗?那是。。意见。选择j.u.l.是明智之举。你肯定知道这很棘手,因此根本不是一个大满贯?有更多有用的事情可以花时间去做。考虑到核心LIB的性能需求,您关于如何降低成本的想法是错误的。