繁体   English   中英

可以在 log.debug 中进行计算吗

[英]Is it ok to do computation inside log.debug

我有一个方法可以调用一个大的对象列表。 根据某些标准,它过滤并返回过滤后的对象列表。 现在记录的方式是每次过滤掉一个项目时,它会与一个 id(过滤的原因)一起记录。 这会导致多个(100 秒)日志语句这样说 - “由于此 ID,此项目已被删除”。

为了使日志更具可读性,我正在考虑在 log.debug 中的 map 中将已删除的项目与 id 一起推送,然后在 return 语句之前将它们一起打印。 这是可以接受的安排吗? 因为对我来说它看起来像是对 log.debug 的滥用。

所以,实际上这就是我的 log.debug 的样子

log.debug("", () -> myMap.put(itemRemoved, id));

我忘了补充一点,这里的 myMap 不会/打算在生产代码中使用。 它仅用于记录目的。

一般来说,我不会在日志语句中做任何事情。 原因很简单。

有人可以编写一个脚本来删除具有特定模式的每一行(对于具有大量无用日志消息的项目)

这将删除它的一部分逻辑。

在您的情况下,此地图仅用于调试。 所以这意味着这不是重要的数据。 但是,如果将来有人可能会觉得将此地图用于新功能很有趣。 这将在测试中正常工作,但在生产中有趣的追加,因为奇怪的是,地图不再填充。

所以一定要限制对这张地图的访问,添加文档以防止任何错误。

但我的一般答案是永远不要在日志方法中编写 set 语句。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM