如何删除日志中的其他信息

时间:2019-05-30 04:24:58

标签: java spring log4j aop aspect

我正在使用日志记录方面来打印应用程序中的日志 AspectLogging类如下:

package com.ft.qto.rest.aspect;

import org.apache.log4j.Logger;
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.AfterThrowing;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.reflect.CodeSignature;
import org.springframework.context.annotation.EnableAspectJAutoProxy;
import org.springframework.stereotype.Component;

@Aspect
@EnableAspectJAutoProxy(proxyTargetClass=true)
@Component
public class LoggingAspect {

  private static final Logger LOG = Logger.getLogger("LoggingAspect.class");

  @Around("within(com.ft.qto.rest.controller..*)")
  public Object getLogMessage(ProceedingJoinPoint joinPoint) throws Throwable{
   // LOG.setLevel(Level.DEBUG);


    String logClassName = this.getClass().getName(); // i have tried this but //how to remove it from logs


   String pckgName = "com.ft.qto.rest.controller.";
   String methodName = joinPoint.getSignature().getName();
   String className = joinPoint.getSignature().getDeclaringTypeName().replace(pckgName, "");

   // log info for for all controllers
    LOG.info("Inside " + methodName + " Method of " + className + " :::::");

    int count =joinPoint.getArgs().length;
    LOG.info("method name " + methodName + " Count  " + count + " :::::");
    if(count>0) {
    CodeSignature codeSignature = (CodeSignature) joinPoint.getSignature();
    for(int i=0;i<count;i++) {
      LOG.info("value of " + codeSignature.getParameterNames()[i] +" in "+ methodName + " ::::: " + joinPoint.getArgs()[i]);
    }
    }

     return joinPoint.proceed();   

  }
  // logs for exception raise in code
  @AfterThrowing(pointcut = "within(com.ft.qto.rest.controller..*)", throwing = "ex")
  public void logAfterThrowingException(JoinPoint joinPoint, Exception ex )
  {
    String pckgName = "com.ft.qto.rest.controller.";
    String methodName = joinPoint.getSignature().getName();
    String className = joinPoint.getSignature().getDeclaringTypeName().replace(pckgName, "");
    LOG.error("ERROR Occurred In " + methodName + " Method of " + className + " :::::");
    LOG.error("ERROR ", ex);
  }

}

日志打印如下:

2019-05-30 09:39:36,055 INFO  [com.ft.qto.rest.aspect.LoggingAspect] getLogMessage(36) : Inside getAllProductReferential Method of ObjectApplicationControllerImpl ::::: 

我不希望 [com.ft.qto.rest.aspect.LoggingAspect] getLogMessage(36):记录在日志中

有人知道解决方案吗?

0 个答案:

没有答案