为了账号安全,请及时绑定邮箱和手机立即绑定

获取 Spring Boot 应用程序中的日志记录级别

获取 Spring Boot 应用程序中的日志记录级别

森栏 2023-11-10 16:52:15
我创建了一个Benchmark注释,它给出了使用 的方法调用的执行时间Stopwatch。注释Benchmark有一个默认isEnabled属性。true我想要的是,即使该值设置false为某种方法,如果日志记录级别为DEBUG,也可以完成基准测试。Spring Boot 有没有办法获取应用程序的当前日志记录级别。我知道我们可以为不同的包启用多个日志记录级别。如果对于当前包或模块,日志记录级别设置为 DEBUG,则应执行基准测试。这就是我的Benchmark注释的样子:@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.METHOD)public @interface Benchmark {    boolean isEnabled() default true;}进行基准测试的方面如下所示:@Aspect@Componentpublic class BenchmarkingAspect {    @Around("@annotation(benchmark)")    public Object benchmarkMethodRuntimeAspect(ProceedingJoinPoint proceedingJoinPoint, Benchmark benchmark) throws Throwable {        if (benchmark.isEnabled()) {            StopWatch stopWatch = new StopWatch();            stopWatch.start();            Object returnedValue = proceedingJoinPoint.proceed();            stopWatch.stop();            log.info("Benchmarked: {} from class {}", proceedingJoinPoint.getSignature().getName(),                    proceedingJoinPoint.getTarget().getClass().getCanonicalName());            log.info(stopWatch.prettyPrint());            return returnedValue;        } else {            return proceedingJoinPoint.proceed();        }    }}
查看完整描述

1 回答

?
慕无忌1623718

TA贡献1744条经验 获得超4个赞

我认为你可以这样做;


Logger targetLogger = LoggerFactory.getLogger(proceedingJoinPoint.getTarget().getClass())

if (targetLog.isDebugEnabled()) {

    // apply your logic here

}


查看完整回答
反对 回复 2023-11-10
  • 1 回答
  • 0 关注
  • 137 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信