针对指定的一些类打印的写法,这个不是很通用,不过还可以了

    1. @NoArgsConstructor(access = AccessLevel.PRIVATE)
    2. @Slf4j
    3. public final class ConfigurationLogger {
    4. /**
    5. * Log rule configuration.
    6. *
    7. * @param ruleConfiguration rule configuration
    8. */
    9. public static void log(final RuleConfiguration ruleConfiguration) {
    10. if (null == ruleConfiguration) {
    11. return;
    12. }
    13. if (ruleConfiguration instanceof ShardingRuleConfiguration) {
    14. log((ShardingRuleConfiguration) ruleConfiguration);
    15. } else if (ruleConfiguration instanceof MasterSlaveRuleConfiguration) {
    16. log((MasterSlaveRuleConfiguration) ruleConfiguration);
    17. } else if (ruleConfiguration instanceof EncryptRuleConfiguration) {
    18. log((EncryptRuleConfiguration) ruleConfiguration);
    19. }
    20. }
    21. private static void log(final ShardingRuleConfiguration shardingRuleConfiguration) {
    22. if (null != shardingRuleConfiguration) {
    23. log(shardingRuleConfiguration.getClass().getSimpleName(),
    24. YamlEngine.marshal(new ShardingRuleConfigurationYamlSwapper().swap(shardingRuleConfiguration), ShardingTupleProcessorFactory.newInstance()));
    25. }
    26. }
    27. private static void log(final MasterSlaveRuleConfiguration masterSlaveRuleConfiguration) {
    28. if (null != masterSlaveRuleConfiguration) {
    29. log(masterSlaveRuleConfiguration.getClass().getSimpleName(), YamlEngine.marshal(new MasterSlaveRuleConfigurationYamlSwapper().swap(masterSlaveRuleConfiguration)));
    30. }
    31. }
    32. private static void log(final EncryptRuleConfiguration encryptRuleConfiguration) {
    33. if (null != encryptRuleConfiguration) {
    34. log(encryptRuleConfiguration.getClass().getSimpleName(), YamlEngine.marshal(new EncryptRuleConfigurationYamlSwapper().swap(encryptRuleConfiguration)));
    35. }
    36. }
    37. /**
    38. * Log authentication configuration.
    39. *
    40. * @param authenticationConfiguration authentication configuration
    41. */
    42. public static void log(final Authentication authenticationConfiguration) {
    43. if (null != authenticationConfiguration) {
    44. log(authenticationConfiguration.getClass().getSimpleName(), YamlEngine.marshal(new AuthenticationYamlSwapper().swap(authenticationConfiguration)));
    45. }
    46. }
    47. /**
    48. * Log properties.
    49. *
    50. * @param properties properties
    51. */
    52. public static void log(final Properties properties) {
    53. if (null != properties) {
    54. log(properties.getClass().getSimpleName(), YamlEngine.marshal(properties));
    55. }
    56. }
    57. private static void log(final String type, final String logContent) {
    58. log.info("{}:\n{}", type, logContent);
    59. }
    60. }