我創建了一個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
}
添加回答
舉報
0/150
提交
取消