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

Java测井性能

皇甫伟彦
2023-03-14

我正在使用设置为log level=INFO的wildfly21。在部署的代码中有许多记录器。调试语句。

例如

private static Logger logger = LogManager.getLogger(getClass.getName());
logger.debug("Some debug message");

调试语句没有正确记录到文件中,因为日志记录级别设置为INFO。

我的问题是关于logger的性能成本。调试。

在代码中保留调试语句是否有任何性能代价。或者是文件I/O中的实际成本,因此,在需要时将调试语句留作故障排除之用并无害处。

共有1个答案

元鸿波
2023-03-14
logger.debug("Some debug message");

但是,如果报表具有副作用成本,例如:

logger.debug("Value of X="+x+" extra bits "+someSideEffect(y));

然后总是以检查日志记录级别为前缀-大多数记录器API支持isXYZ启用logger.is启用(Level. XYZ)

if(logger.isDebugEnabled())
    logger.debug("Value of X="+x+" extra bits "+someSideEffect(y));

这避免了不必要的字符串创建和在未使用的日志记录级别中执行的其他计算的任何可能影响。

 类似资料:
  • 有没有一种方法可以让fluentd船LivenessProbes输出像它对普通容器在吊舱中的输出一样?

  • 我在学习Kubernetes时试图测试一个活性探针。我已经设置了一个迷你库贝,并配置了一个带有活性探针的吊舱。 测试脚本(例如,通过docker exec),它似乎会根据需要报告成功和失败。 该探测会导致失败事件,我可以通过kubectl Description podname查看这些事件,但它不会报告从失败中恢复的情况。 是否可以在不重新启动吊舱或迷你库贝的情况下进行修改? 如果失败导致pod重

  • 这实际上意味着com.abc.MyClass类中的任何日志都将被记录到两个记录器... 我的目标是能够定义第二个记录器(父记录器)来记录直接到达该记录器的任何消息,例如来自com.myclass类的消息,同时只记录通过可加性功能到达并已经记录在后代记录器中的错误级别消息... 如果我将“COM”的记录器设置为错误,我将只看到错误级别的消息,而我愿意看到直接写到这个日志的信息级别的消息... 这可能

  • 下面的问题对很多人来说可能很愚蠢,因为它应该有一个简单的解决方案,但我是Spring框架的初学者,我一直在搜索和测试许多方法,但都没有成功。 因此,我需要实现基于Spring的Web服务的日志记录。Maven用于依赖项,带有依赖项,而不是整个starter web starter。 我尝试使用log4j,添加了一个依赖项和配置文件,它确实生成了一个日志文件,但只用于记录器本身的初始化,并且没有记录

  • 如何禁用Quartz日志记录?Quartz正在我的控制台上打印INFO语句。我试图用log4j中的以下语句禁用它。属性文件

  • 我正在移动应用程序到,其中一部分工作是重构来自至。我想将现有的结构化日志数据传递给ApplicationInsights。 称之为: 生成应用程序洞察数据,包括和-yay的自定义维度。 称之为: 在哪里: 不会在Application Insights中生成任何属性。 所以是接口。这只是一个模拟;我真正想利用的是微软的等价物。实践。企业图书馆。伐木。LogEntry. 我的下一步是设置自定义,将属