我需要与执行日志记录AOP
使用log4j
。
我在没有AOP
基本spring MVC
示例的情况下实现了日志记录?
也有小的样本在不AOP
使用aspectJ
日志的情况下使用(只是制作了Sysout
)?
我不知道如何整合它?
Spring使我们使用AOP变得非常容易。这是一个简单的日志记录示例:
@Aspect
public class MyLogger {
private Logger log = Logger.getLogger(getClass());
@After("execution(* com.example.web.HomeController.*(..))")
public void log(JoinPoint point) {
log.info(point.getSignature().getName() + " called...");
}
}
然后只需配置你的applicationContext.xml(或等效文件):
<aop:aspectj-autoproxy>
<aop:include name="myLogger"/>
</aop:aspectj-autoproxy>
<bean id="myLogger" class="com.example.aspect.MyLogger"/>
你会在MyLogger类中注意到我@After在方法上方指定的内容。这被称为建议,它基本上指定了将在有问题的方法之后调用此“ log”方法。其他选项包括@Before, @Around, @AfterThrowing。
该表达式"execution(* com.example.web.HomeController.*(..))"
称为切入点表达式,它指定我们要定位的对象(在这种情况下,是HomeController类的所有方法)。
PS aop
名称空间(xmlns:aop="http://www.springframework.org/schema/aop"
)和架构位置(取决于版本)将需要添加到顶部的applicationContext.xml中。这是我的设置:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.1.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.1.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.1.xsd">
null
问题内容: 我想将“跟踪”消息添加到我的所有公共方法中,如下所示: 现在,我想使用AOP(和字节码检测)将所有这些自动添加到我的方法中。我在想。是否有意义?您知道任何开放源代码吗? 问题答案: 我创建了一个简单的方面来捕获公共方法的执行。该AspectJ代码的核心是切入点定义: 在这里,我们将捕获任何包,任何类,具有任意数量的参数,具有任何返回类型的所有公共方法。 建议执行可以在下面的代码段中可视
我希望你们能够帮助我解决我目前面临的难题。我目前正在从事一个现有的web应用程序项目,其中一个要求是我们必须集中记录日志。该应用程序是一个分层应用程序,由客户端层(即视图)、服务层、业务层和DAO层组成。 目前,应用程序中的日志记录由控制器方法处理,其中每个控制器方法需要记录一些信息,通过调用日志记录函数手动记录数据。这些控制器方法处理的请求来自许多不同的客户端来源,包括移动设备(如电话)、网络浏
编写了简单的POC来证明和测试Spring Boot和log4j2的兼容性。一旦成功,我将把它移动到真正的应用程序。 请参考下面的maven依赖关系(来自POC): 如果我不排除Spring的logback,也不添加boot-starter-log4j2,那么应用程序日志会打印到应用程序文件中,但Spring日志根本不会打印。我感觉到了依赖的问题。感谢任何帮助。
我使用的是,我想配置将不同的内容异步记录到不同的日志文件中。 我创建了log4j2文件,但是仍然使用Spring Boot默认日志记录。如何切换日志记录?
我正在尝试使用PostSharp和multicastAttribute实现日志记录。使用PostSharp诊断库中的日志功能。 我有一个GlboalAspects。启动项目目录中的cs。内容如下。 右键单击我的项目并选择属性,默认命名空间是“alp_generator” 我不知道“PostSharp.Patterns.Diagnostics.LogAttribute”是否正确。 我根本没有日志记录