如何控制azure-identity API的冗余重复日志输出?
解决Azure Identity冗余日志输出问题
你可以通过调整日志框架的配置,针对性地降低或关闭azure-identity和msal4j相关类的日志级别,从而消除这些冗余的INFO日志。以下是几种常见场景的配置方法:
1. Spring Boot项目通过配置文件快速调整
如果你的项目是Spring Boot,可以直接在application.properties或application.yml中添加以下配置:
application.properties
# 关闭AcquireTokenSilentSupplier的INFO日志 logging.level.com.microsoft.azure.msal4j.AcquireTokenSilentSupplier=WARN # 关闭ClientSecretCredential的INFO日志 logging.level.com.azure.identity.ClientSecretCredential=WARN
application.yml
logging: level: com.microsoft.azure.msal4j.AcquireTokenSilentSupplier: WARN com.azure.identity.ClientSecretCredential: WARN
如果想彻底关闭这些日志,可以把级别设为OFF。
2. 自定义Logback配置(logback.xml/logback-spring.xml)
如果项目使用Logback作为日志框架,在配置文件中添加以下logger节点:
<configuration> <!-- 其他原有配置 --> <!-- 管控冗余日志 --> <logger name="com.microsoft.azure.msal4j.AcquireTokenSilentSupplier" level="WARN" additivity="false"/> <logger name="com.azure.identity.ClientSecretCredential" level="WARN" additivity="false"/> </configuration>
additivity="false"可以避免日志被重复输出到根logger中。
3. 自定义Log4j2配置(log4j2.xml)
如果使用Log4j2,在配置文件中添加:
<Configuration> <!-- 其他原有配置 --> <Loggers> <!-- 管控冗余日志 --> <Logger name="com.microsoft.azure.msal4j.AcquireTokenSilentSupplier" level="WARN" additivity="false"/> <Logger name="com.azure.identity.ClientSecretCredential" level="WARN" additivity="false"/> <Root level="info"> <!-- 原有appender配置 --> </Root> </Loggers> </Configuration>
这些配置会把你提到的两类冗余INFO日志过滤掉,只保留WARN及以上级别的重要日志(比如认证失败、缓存异常等),既不影响问题排查,又能清理日志输出。
内容的提问来源于stack exchange,提问作者Gunwant
相关产品推荐
相关产品推荐

