【问题标题】:How to implement different logger pattern for specific class and methods using logback in java class?如何在 java 类中使用 logback 为特定类和方法实现不同的记录器模式?
【发布时间】:2017-09-20 13:22:05
【问题描述】:

基本aop代码

@Aspect
public class LoggingAspect {
private   Logger logger  ;

@Before("execution(*  *(..)) && !execution(* com.*model*.*(..))")
public void logBefore(JoinPoint joinPoint) {
    logger = LoggerFactory.getLogger(joinPoint.getTarget().getClass());
    logger.info("{} :" + joinPoint.getSignature().getName(),"info for user log" );
    //logger.info("hijacked target class : " + joinPoint.getTarget().getClass().getSimpleName() );
}

@After("execution(*  *(..)) && !execution(* com.*model*.*(..)) ")
public void logAfter(JoinPoint joinPoint) {

    System.out.println("logAfter() is running!");
    System.out.println("hijacked : " + joinPoint.getSignature().getName());
    System.out.println("******");

}
}

目前,我默认为某些方法实现 aop 日志记录,例如方法开始和方法结束。所以使用 aop 记录器打印 apo 类和方法,而不是打印方法拥有的类和方法。我必须覆盖 aop 中的类名来打印该方法的类名,所以我需要将方法名作为本机方法名

目前我正在接受

2017-09-20 18:32:06 INFO [main] c.m.customer.bo.impl.CustomerBoImpl - logBefore:用户 log() 的信息:addCustomer

我需要的是

2017-09-20 18:32:06 INFO [main] c.m.customer.bo.impl.CustomerBoImpl - addCustomer : 用户 log() 的信息 :addCustomer

【问题讨论】:

    标签: java logging aspectj logback-classic


    【解决方案1】:

    最后,我从这个链接中找到了一个使用 ProceedingJoinPoint 的简单解决方案 Log4j and AOP, how to get actual class name

    【讨论】:

    • 我找到了类的答案,但没有找到方法
    • 您需要定义单独的附加程序,然后通过记录器名称/类别进行访问。通过调用 Logger.getLogger 时提供不同的名称来获取不同的记录器
    • @Acewin,通过上面的回答我可以得到logger中的动态类名。有没有其他方法可以像 MDC 一样覆盖记录器中的方法名称。或者我们可以通过 MDC 覆盖 %M
    • 我不确定你的意思。您可能需要详细说明您的问题。如果您需要不同的日志显示模式,那么您可以在 log4j.xml 中更改它。您的日志模式将类似于 %d{yyyy-MM-dd HH:mm:ss} %-5level %logger{36} - %msg%n.. 更改您希望日志显示的方式。跨度>
    • @Acewin 我正在使用 logback [stackoverflow.com/questions/46834273/… 这里我正在获取类名作为实际类名而不是 aop 类,就像我需要在记录器中获取实际方法名而不是 aop 方法名一样有什么方法可以覆盖 %M
    猜你喜欢
    • 2013-06-11
    • 2011-09-02
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-10
    相关资源
    最近更新 更多