Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/328.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/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
Java 如果日志记录级别为info,logger.debug是否可能产生错误_Java_Logging - Fatal编程技术网

Java 如果日志记录级别为info,logger.debug是否可能产生错误

Java 如果日志记录级别为info,logger.debug是否可能产生错误,java,logging,Java,Logging,我是个新手,我只是想问一下,如果我的日志级别是info,我是否会出错,然后我得到了如下信息: logger.debug("hello " + object.getMethod()); 它不在如下所示的if块内: if(LOGGER.isDebugEnabled){...} 此外,它还会影响应用程序的响应时间。如果它不在If block语句中 所有日志方法也在内部检查级别。我们使用的原因是xyzenabled方法(如果用于性能) 考虑以下呼吁: logger.debug(“myObject的值

我是个新手,我只是想问一下,如果我的日志级别是info,我是否会出错,然后我得到了如下信息:

logger.debug("hello " + object.getMethod());
它不在如下所示的if块内:

if(LOGGER.isDebugEnabled){...}

此外,它还会影响应用程序的响应时间。如果它不在If block语句中

所有日志方法也在内部检查级别。我们使用
的原因是xyzenabled
方法(如果用于性能)

考虑以下呼吁:

logger.debug(“myObject的值为:”+hugeObject.toString());
并假设
hugeObject
正如其名称所示,是巨大的。构造它的字符串表示可能既耗时又占用内存,而且最终毫无意义,因为在创建字符串之后,如果级别未设置为调试,则不会记录任何内容。相反,您可以在执行此对话之前显式检查级别,并节省可能需要的时间:

if(logger.isDebugEnabled()){
debug(“myObject的值为:”+hugeObject.toString());
}

所有日志方法也会在内部检查级别。我们使用
的原因是xyzenabled
方法(如果用于性能)

考虑以下呼吁:

logger.debug(“myObject的值为:”+hugeObject.toString());
并假设
hugeObject
正如其名称所示,是巨大的。构造它的字符串表示可能既耗时又占用内存,而且最终毫无意义,因为在创建字符串之后,如果级别未设置为调试,则不会记录任何内容。相反,您可以在执行此对话之前显式检查级别,并节省可能需要的时间:

if(logger.isDebugEnabled()){
debug(“myObject的值为:”+hugeObject.toString());
}

尽管大多数现代日志框架为延迟构建的消息提供了重载。例如,类似于:
logger.debug(“myObject的值是:{}”,myObject)
。是的,这是有意义的,还有一个问题,假设我的方法对象.getMethod()返回一个字符串值,这会对性能产生如此巨大的影响吗?@VincentGregory取决于创建这个字符串的成本有多高(这与它的大小密切相关)好的,非常感谢。您完全回答了我的问题。感谢您的帮助尽管大多数现代日志框架为延迟构建的消息提供重载。例如,类似:
logger.debug(“myObject的值为:{}”,myObject)
。是的,这是有意义的,还有一个问题,假设我的方法对象。getMethod()返回一个字符串值,这会对性能产生如此巨大的影响吗?@VincentGregory取决于创建这个字符串的成本有多高(它与它的大小密切相关)好的,非常感谢。你完全回答了我的问题。谢谢你的帮助pppp我怎么知道框架是否允许延迟构建消息。java 6支持它吗?Thaks soo非常感谢你的回答,现在对我来说很有意义。谢谢你的帮助。我怎么知道框架是否允许延迟构建消息。java 6支持它吗?Thaks soo m谢谢你的回答,现在我明白了。也谢谢你的帮助