AccessLogProperties.java 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172
  1. import lombok.Getter;
  2. import lombok.Setter;
  3. import org.apache.commons.lang.StringUtils;
  4. import org.springframework.boot.context.properties.ConfigurationProperties;
  5. import org.springframework.context.annotation.Configuration;
  6. import java.util.HashMap;
  7. import java.util.Map;
  8. import java.util.Optional;
  9. /**
  10. * <pre>
  11. *
  12. * Created by zhaopx.
  13. * Date: 2025/5/29
  14. * Time: 14:50
  15. * Vendor: exlive.cn
  16. *
  17. * </pre>
  18. *
  19. * @author zhaopx
  20. */
  21. @Setter
  22. @Getter
  23. @Configuration
  24. @ConfigurationProperties(prefix = "exbooter.access-log")
  25. public class AccessLogProperties {
  26. /**
  27. * 文件,还是消息。file/jdbc/rabbitmq
  28. */
  29. String persistType = "jdbc";
  30. /**
  31. * 文件相关配置
  32. */
  33. Map<String, Object> file;
  34. /**
  35. * 数据库相关配置
  36. */
  37. Map<String, Object> jdbc;
  38. Map<String, Object> rabbitmq;
  39. Map<String, Object> kafka;
  40. public String getPersistType() {
  41. return Optional.ofNullable(StringUtils.trimToNull(persistType)).orElse("jdbc");
  42. }
  43. public String getPath() {
  44. return Optional.ofNullable(StringUtils.trimToNull((String) getFile().getOrDefault("path", "./logs"))).orElse("./logs");
  45. }
  46. public Map<String, Object> getFile() {
  47. if(file == null) {
  48. file = new HashMap<>();
  49. }
  50. return file;
  51. }
  52. public String getFilePrefix() {
  53. return Optional.ofNullable(StringUtils.trimToNull((String) getFile().getOrDefault("filePrefix", "api-access."))).orElse("api-access.");
  54. }
  55. public String getFileSuffix() {
  56. return Optional.ofNullable(StringUtils.trimToNull((String) getFile().getOrDefault("fileSuffix", ".log"))).orElse(".log");
  57. }
  58. /**
  59. * 开启 round
  60. * @return
  61. */
  62. public boolean isRound() {
  63. return Optional.ofNullable((Boolean) getFile().getOrDefault("round", false)).orElse(false);
  64. }
  65. /**
  66. * 滚单位。second,minute,hour
  67. */
  68. public String getRoundUnit() {
  69. return Optional.ofNullable(StringUtils.trimToNull((String) getFile().getOrDefault("roundUnit", "minute"))).orElse("minute");
  70. }
  71. /**
  72. * 滚动值,默认 1
  73. */
  74. public int getRoundValue() {
  75. return Optional.ofNullable((Integer) getFile().getOrDefault("roundValue", 1)).orElse(1);
  76. }
  77. /**
  78. * 滚动大小,10M
  79. */
  80. public int getRollSize() {
  81. return Optional.ofNullable((Integer) getFile().getOrDefault("rollSize", 10 * 1024 * 1024)).orElse(10 * 1024 * 1024);
  82. }
  83. /**
  84. * 滚动时间,60s
  85. */
  86. public int getRollInterval() {
  87. return Optional.ofNullable((Integer) getFile().getOrDefault("rollInterval", 60)).orElse(60);
  88. }
  89. public Map<String, Object> getJdbc() {
  90. if(jdbc == null) {
  91. jdbc = new HashMap<>();
  92. }
  93. return jdbc;
  94. }
  95. public Map<String, Object> getRabbitmq() {
  96. if(rabbitmq == null) {
  97. rabbitmq = new HashMap<>();
  98. }
  99. return rabbitmq;
  100. }
  101. public Map<String, Object> getKafka() {
  102. if(kafka == null) {
  103. kafka = new HashMap<>();
  104. }
  105. return kafka;
  106. }
  107. /**
  108. * RabbitMQ 相关配置
  109. */
  110. public String getHost() {
  111. return Optional.ofNullable(StringUtils.trimToNull((String) getRabbitmq().getOrDefault("localhost", "localhost"))).orElse("localhost");
  112. }
  113. public int getPort() {
  114. return Optional.ofNullable((Integer) getRabbitmq().getOrDefault("port", 5217)).orElse(5217);
  115. }
  116. public String getUsername() {
  117. return StringUtils.trimToNull((String) getRabbitmq().get("username"));
  118. }
  119. public String getPassword() {
  120. return StringUtils.trimToNull((String) getRabbitmq().get("password"));
  121. }
  122. public String getVirtualHost() {
  123. return Optional.ofNullable(StringUtils.trimToNull((String) getRabbitmq().getOrDefault("virtualHost", "/"))).orElse("/");
  124. }
  125. public String getExchangeName() {
  126. return StringUtils.trimToNull((String) getRabbitmq().get("exchangeName"));
  127. }
  128. public String getRoutingKey() {
  129. return StringUtils.trimToNull((String) getRabbitmq().get("routingKey"));
  130. }
  131. public boolean getAutoDelete() {
  132. return Optional.ofNullable((Boolean) getRabbitmq().getOrDefault("autoDelete", false)).orElse(false);
  133. }
  134. }