我有一个方法可以调用一大堆对象。根据某些条件,它会过滤并返回已过滤的对象列表。现在,记录完成的方式是每次过滤掉一个项目时,都会记录一个id(过滤的原因)。这导致多个(100s)的日志声明说这样 - "此项目因此ID而被删除"。
为了使日志更具可读性,我想继续在log.debug中继续推送已删除的项目以及id中的id,然后在return语句之前将它们一起打印。这是可以接受的安排吗?因为它看起来像是对我的滥用log.debug。
所以,实际上这就是我的log.debug的样子
log.debug("", () -> myMap.put(itemRemoved, id));
我忘了添加myMap这里没有/打算在生产代码中使用。它仅用于记录目的。
答案 0 :(得分:1)
一般来说,我不会在日志声明中做任何事情。原因很简单。
有人可以编写一个脚本来删除具有特定模式的每一行(对于包含大量无用日志消息的项目)
那会用它删除部分逻辑。
在您的情况下,此映射仅用于调试。这意味着这不是重要的数据。但是,如果在未来,有人可能会觉得有趣的是使用这个地图的新功能。这将在测试中正常工作,因为奇怪的是,地图不再填充。
因此,请务必限制对此地图的访问,添加文档以防止出现任何错误。
但我的一般答案是从不在日志方法中写一个set语句。