针对指定的一些类打印的写法,这个不是很通用,不过还可以了
@NoArgsConstructor(access = AccessLevel.PRIVATE)@Slf4jpublic final class ConfigurationLogger {/*** Log rule configuration.** @param ruleConfiguration rule configuration*/public static void log(final RuleConfiguration ruleConfiguration) {if (null == ruleConfiguration) {return;}if (ruleConfiguration instanceof ShardingRuleConfiguration) {log((ShardingRuleConfiguration) ruleConfiguration);} else if (ruleConfiguration instanceof MasterSlaveRuleConfiguration) {log((MasterSlaveRuleConfiguration) ruleConfiguration);} else if (ruleConfiguration instanceof EncryptRuleConfiguration) {log((EncryptRuleConfiguration) ruleConfiguration);}}private static void log(final ShardingRuleConfiguration shardingRuleConfiguration) {if (null != shardingRuleConfiguration) {log(shardingRuleConfiguration.getClass().getSimpleName(),YamlEngine.marshal(new ShardingRuleConfigurationYamlSwapper().swap(shardingRuleConfiguration), ShardingTupleProcessorFactory.newInstance()));}}private static void log(final MasterSlaveRuleConfiguration masterSlaveRuleConfiguration) {if (null != masterSlaveRuleConfiguration) {log(masterSlaveRuleConfiguration.getClass().getSimpleName(), YamlEngine.marshal(new MasterSlaveRuleConfigurationYamlSwapper().swap(masterSlaveRuleConfiguration)));}}private static void log(final EncryptRuleConfiguration encryptRuleConfiguration) {if (null != encryptRuleConfiguration) {log(encryptRuleConfiguration.getClass().getSimpleName(), YamlEngine.marshal(new EncryptRuleConfigurationYamlSwapper().swap(encryptRuleConfiguration)));}}/*** Log authentication configuration.** @param authenticationConfiguration authentication configuration*/public static void log(final Authentication authenticationConfiguration) {if (null != authenticationConfiguration) {log(authenticationConfiguration.getClass().getSimpleName(), YamlEngine.marshal(new AuthenticationYamlSwapper().swap(authenticationConfiguration)));}}/*** Log properties.** @param properties properties*/public static void log(final Properties properties) {if (null != properties) {log(properties.getClass().getSimpleName(), YamlEngine.marshal(properties));}}private static void log(final String type, final String logContent) {log.info("{}:\n{}", type, logContent);}}
