Spring Boot应用如何禁用com.azure.core.util.logging.ClientLogger冗余日志
解决方案
首先检查是否排除了Spring Boot默认的logback依赖
日志配置不生效的常见原因是classpath下存在多套日志实现冲突,需要在pom的spring-boot-starter(或spring-boot-starter-web等核心启动器)中排除默认的spring-boot-starter-logging依赖,示例配置:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> </dependency>强制指定Azure SDK使用SLF4J作为日志实现
Azure Core SDK默认会自动探测日志实现,你可以通过添加启动系统参数强制它走SLF4J桥接,这样所有com.azure相关日志都会受你的log4j2配置管控:-Dazure.core.logging.provider=slf4j补充JUL桥接的启动参数
如果你不想强制指定Azure的日志实现,也可以通过指定JUL的日志管理器让所有JUL输出都走log4j2:-Djava.util.logging.manager=org.apache.logging.log4j.jul.LogManager扩大log4j2的日志管控范围
部分冗余日志可能来自com.azure下的其他子包,建议调整logger配置覆盖所有Azure相关包:<Loggers> <!-- 覆盖所有Azure SDK相关日志 --> <Logger name="com.azure" level="ERROR" additivity="false"> <AppenderRef ref="ConsoleAppender" /> </Logger> <Logger name="com.azure.spring" level="ERROR" additivity="false"> <AppenderRef ref="ConsoleAppender" /> </Logger> <Logger name="org.springframework" level="ERROR" /> <Root level="info"> <AppenderRef ref="ConsoleAppender" /> </Root> </Loggers>排查配置加载正确性
可以在启动参数中添加-Dlog4j.debug=true,启动时观察控制台输出的log4j2初始化日志,确认你的log4j2.xml被正常加载,且配置的logger规则被正确注册。
内容的提问来源于stack exchange,提问作者kenny
相关产品推荐
相关产品推荐

