Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 记录操作的优雅方式?_Java_Swing_Logging_Action - Fatal编程技术网

Java 记录操作的优雅方式?

Java 记录操作的优雅方式?,java,swing,logging,action,Java,Swing,Logging,Action,假设您有一个包含一系列操作的应用程序。您将如何编写它,以便在触发操作时记录它们 使用模板模式 使用AOP 使用侦听器和事件 结合使用上述方法 还有别的(解释) 如果您只是想记录特定的操作,可能最简单的方法是使用诸如或etc之类的语句在您希望跟踪的代码中添加日志语句。为了消除冗余,我会投票支持AOP,但前提是您的项目中有AOP的空间。 您可以使用项目中其他地方的方法中的日志库进行自定义日志记录,但是在一个特定组件中,如果您持有许多类似的类,并且希望为所有类记录类似的内容,那么复制/粘贴并确保每个人

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

  • 使用模板模式
  • 使用AOP
  • 使用侦听器和事件
  • 结合使用上述方法
  • 还有别的(解释)

  • 如果您只是想记录特定的操作,可能最简单的方法是使用诸如或etc之类的语句在您希望跟踪的代码中添加日志语句。

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


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

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


    日志记录是AOP的“你好世界”。如果你没有使用AOP,那你就错了。

    这实际上取决于你的具体环境。特别是关于正在跟踪的内容以及应用程序当前的工作方式。如果操作是所有具有公共基类的类,并且您只关心操作的名称,那么添加一个简单的日志就可以了。如果操作分布在多个代码层上,那么AOP或侦听器/事件类型的解决方案可能会更好。如果该应用程序是一个web应用程序而不是桌面应用程序,或者如果您最终需要将日志馈送到数据库、web服务,或者只需要文本文件,那么这一切都会有所不同。

    调用方法时为什么不使用log4j条目?