Logback配置自定义日志特殊业务单独打印案例

一、添加自定义配置

	<!--特殊业务记录单独的日志文件-->
	<appender name="ASYNC_FILE"
			  class="ch.qos.logback.core.rolling.RollingFileAppender">
		<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
			<level>ERROR</level>
		</filter>
		<File>${LOG_PATH}/async.log</File>
		<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
			<fileNamePattern>${LOG_PATH}/async-%d{yyyy-MM-dd}.log.%i
			</fileNamePattern>
			<timeBasedFileNamingAndTriggeringPolicy
					class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
				<maxFileSize>500MB</maxFileSize>
			</timeBasedFileNamingAndTriggeringPolicy>
			<maxHistory>2</maxHistory>
		</rollingPolicy>
		<layout class="ch.qos.logback.classic.PatternLayout">
			<Pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36}
				-%msg%n
			</Pattern>
		</layout>
	</appender>

	<!--不同业务打印到指定文件-->
	<logger name="asyncLog" additivity="false" level="INFO">
		<appender-ref ref="ASYNC_FILE"/>
	</logger>

 二、代码引用日志

@Aspect
@Component
public class AsyncLogAspect {

    private static final Logger LOGGER=LoggerFactory.getLogger("asyncLog");

    /**
     * 访问其他系统失败后添加本地数据库日志切入点
     */
    @Pointcut("execution(public * com.zhq.business.asynclog.service.*.add(..))")
    public void syncLogAdd(){};

    /**
     * mq->http->mysql异步访问失败,记录到日志文件
     * @param joinPoint 参数
     * @param e 异常
     */
    @AfterThrowing(pointcut = "syncLogAdd()",throwing = "e")
    public void afterAsyncLogAddThrowing(JoinPoint joinPoint, Exception e){
        String methodName = joinPoint.getSignature().getName();
        LOGGER.error("###afterAddThrowing()流程启动异常"+"The method:{} , occurs exception:{}" ,methodName,e);
        Object[] obj = joinPoint.getArgs();
        for (Object argItem : obj) {
            if(argItem instanceof AsyncLog){
                AsyncLog asyncLog=(AsyncLog)argItem;
                asyncLog.setLastError(e.getMessage());
                LOGGER.error("####!!!!支付成功后访问异步通知mq->http->mysql失败,失败日志asyncLog:{}",JSON.toJSONString(asyncLog));
            }
        }
    }
}

三、案例测试 

 

 
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值