使用方法内的日志跟踪方法的执行是不好的做法吗?



我目前正在使用Spring MVC开发一个安静的服务。

我已经读到日志记录是一个交叉切,所以我想知道在服务外观方法中使用像log.info("A variable value")这样的日志语句是否是一种不好的做法。

  • 我们是否应该删除这些日志语句并将它们放在一个拦截器类型的对象中,该对象的唯一职责是日志记录?

  • 是否是一个充满 log.debug 消息的方法,其职责是帮助跟踪方法执行的不良做法? 如果是,如果拦截器只能访问方法参数,我们如何将此责任转移到拦截器

  • 如果我需要一个信息更丰富的跟踪执行,我该如何实现?
  1. 如果您不了解方法在做什么,则存在重大问题,则已失去对软件的控制。

  2. 有时需要它,但应尽快删除。除此之外,日志语句通过添加非逻辑"噪音"使理解代码变得更加困难。

  3. 方法应该足够小,只需很小的努力就很容易完全理解,只有少数例外。见"叔叔"鲍勃·马丁。

  4. 我被带进了一个项目,因为性能方式无法使用缓慢。我在一天内解决了这个问题,它是日志记录,我删除了它,性能提高了> 25 倍。

这不一定是不好的做法,但你应该尽量避免Twitter所犯的错误,即在加密之前记录消息时,用户密码为纯文本

最新更新