记录动作的优雅方式?

时间:2011-01-04 00:39:01

标签: java swing logging action

假设您有一系列操作的应用程序。您如何编写它以便在触发操作时记录操作?

  1. 使用模板模式。
  2. 使用AOP。
  3. 使用听众和活动。
  4. 使用上述的组合。
  5. 其他(解释)。

4 个答案:

答案 0 :(得分:6)

为了消除冗余,我会投票支持AOP,但前提是你的项目中有AOP的空间。 您可以使用项目中其他位置的方法使用日志记录库进行自定义日志记录,但是在您拥有许多类似类的特定组件中并希望为所有类别记录类似的事情,复制/粘贴并确保它们可能会很痛苦每个人都知道如何登录。

编辑:关于其他枚举方法,我认为AOP的优势在于它不需要您专门为此主题设计代码(模板方法或事件)。在发现横切关注点并对其进行处理时,通常不会失去任何代码灵活性,而不是为了使用一致的日志记录而重新设计整个类层次结构。

答案 1 :(得分:2)

我认为最好的答案是在一个方面内使用log4j(或sli4j,如果这是最新的)。

记录是AOP的“hello world”。如果你没有使用AOP,那你做错了。

答案 2 :(得分:2)

这实际上取决于您的具体情况。特别是关于被跟踪的内容以及应用程序当前的工作方式。如果操作是所有具有公共基类的类,并且您关心的是操作的名称,那么登录此类的简单添加将是一个很好的选择。如果您的操作分布在多个代码层中,那么AOP或侦听器/事件类型解决方案可能会更好地工作。如果该应用程序是Web应用程序与桌面应用程序,或者您最终需要将日志提供给数据库,Web服务,或者只是希望文本文件都有所作为。

答案 3 :(得分:1)

如果您只想记录特定操作,最简单的方法是使用logging api,例如commons-logginglog4j等,在您要跟踪的代码中添加日志语句。