首先,我想定义跟踪和日志记录之间的区别,如“AspectJ in Action”一书中所述,第257页:
大多数开发人员(以及本书)将日志记录称为 ,用于生成特定于一段代码所携带逻辑的消息 。
跟踪通常被视为为较低级别事件生成消息的 行为 :方法进入和退出,对象构造,例外 - 处理,状态修改等。
因此,使用AspectJ跟踪并不是很难。但是,如何使记录与AspectJ跟踪保持一致?
例如,我使用sl4j logger进行方面跟踪,我需要使用相同的记录器进行记录。
其中一个解决方案是编写单独的方面,如下所示:
around(): catchCallToLogger(): *pointcut that intercepts calls like log(), debug(), info() etc from some logging toolkit* {
*call logger from tracing aspect*
}
所以,这个选项是可以接受的,但是我想知道这个方法是否有替代方案,以及在现实世界中是否需要组合跟踪和记录。