springcloud の登録センター クライアントは、登録センター サーバーが正常に実行されているかどうかを判断するために、定期的にハートビートを登録センター サーバーに送信します。
このため、ログが継続的に出力されることになり、通常の業務ログ出力を確認するのが不便になります。
ConfigClusterResolver のどのメソッドが上記のログを出力しているかを確認します。
@Override
public List<AwsEndpoint> getClusterEndpoints() {
if (clientConfig.shouldUseDnsForFetchingServiceUrls()) {
if (logger.isInfoEnabled()) {
logger.info("Resolving eureka endpoints via DNS: {}", getDNSName());
}
return getClusterEndpointsFromDns();
} else {
logger.info("Resolving eureka endpoints via configuration");
return getClusterEndpointsFromConfig();
}
}
では、ログの出力を禁止するにはどうすればよいでしょうか?
この問題は、レジストリのログ出力レベルを上げ、次の構成を構成ファイルに書き込むことで解決できます。
#提高日志级别为WARN
logging:
level:
com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver: WARN
上記の構成を追加した後、一定期間実行すると、info 以下のレベルのログが出力されなくなることがわかります。
推論: クラス/パッケージを指定するlogging.level+により、クラスまたはパッケージのログ出力レベルを指定できます。
logging.level.root=WARN #WARN レベルでの root ログ出力