| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172 |
- import lombok.Getter;
- import lombok.Setter;
- import org.apache.commons.lang.StringUtils;
- import org.springframework.boot.context.properties.ConfigurationProperties;
- import org.springframework.context.annotation.Configuration;
- import java.util.HashMap;
- import java.util.Map;
- import java.util.Optional;
- /**
- * <pre>
- *
- * Created by zhaopx.
- * Date: 2025/5/29
- * Time: 14:50
- * Vendor: exlive.cn
- *
- * </pre>
- *
- * @author zhaopx
- */
- @Setter
- @Getter
- @Configuration
- @ConfigurationProperties(prefix = "exbooter.access-log")
- public class AccessLogProperties {
- /**
- * 文件,还是消息。file/jdbc/rabbitmq
- */
- String persistType = "jdbc";
- /**
- * 文件相关配置
- */
- Map<String, Object> file;
- /**
- * 数据库相关配置
- */
- Map<String, Object> jdbc;
- Map<String, Object> rabbitmq;
- Map<String, Object> kafka;
- public String getPersistType() {
- return Optional.ofNullable(StringUtils.trimToNull(persistType)).orElse("jdbc");
- }
- public String getPath() {
- return Optional.ofNullable(StringUtils.trimToNull((String) getFile().getOrDefault("path", "./logs"))).orElse("./logs");
- }
- public Map<String, Object> getFile() {
- if(file == null) {
- file = new HashMap<>();
- }
- return file;
- }
- public String getFilePrefix() {
- return Optional.ofNullable(StringUtils.trimToNull((String) getFile().getOrDefault("filePrefix", "api-access."))).orElse("api-access.");
- }
- public String getFileSuffix() {
- return Optional.ofNullable(StringUtils.trimToNull((String) getFile().getOrDefault("fileSuffix", ".log"))).orElse(".log");
- }
- /**
- * 开启 round
- * @return
- */
- public boolean isRound() {
- return Optional.ofNullable((Boolean) getFile().getOrDefault("round", false)).orElse(false);
- }
- /**
- * 滚单位。second,minute,hour
- */
- public String getRoundUnit() {
- return Optional.ofNullable(StringUtils.trimToNull((String) getFile().getOrDefault("roundUnit", "minute"))).orElse("minute");
- }
- /**
- * 滚动值,默认 1
- */
- public int getRoundValue() {
- return Optional.ofNullable((Integer) getFile().getOrDefault("roundValue", 1)).orElse(1);
- }
- /**
- * 滚动大小,10M
- */
- public int getRollSize() {
- return Optional.ofNullable((Integer) getFile().getOrDefault("rollSize", 10 * 1024 * 1024)).orElse(10 * 1024 * 1024);
- }
- /**
- * 滚动时间,60s
- */
- public int getRollInterval() {
- return Optional.ofNullable((Integer) getFile().getOrDefault("rollInterval", 60)).orElse(60);
- }
- public Map<String, Object> getJdbc() {
- if(jdbc == null) {
- jdbc = new HashMap<>();
- }
- return jdbc;
- }
- public Map<String, Object> getRabbitmq() {
- if(rabbitmq == null) {
- rabbitmq = new HashMap<>();
- }
- return rabbitmq;
- }
- public Map<String, Object> getKafka() {
- if(kafka == null) {
- kafka = new HashMap<>();
- }
- return kafka;
- }
- /**
- * RabbitMQ 相关配置
- */
- public String getHost() {
- return Optional.ofNullable(StringUtils.trimToNull((String) getRabbitmq().getOrDefault("localhost", "localhost"))).orElse("localhost");
- }
- public int getPort() {
- return Optional.ofNullable((Integer) getRabbitmq().getOrDefault("port", 5217)).orElse(5217);
- }
- public String getUsername() {
- return StringUtils.trimToNull((String) getRabbitmq().get("username"));
- }
- public String getPassword() {
- return StringUtils.trimToNull((String) getRabbitmq().get("password"));
- }
- public String getVirtualHost() {
- return Optional.ofNullable(StringUtils.trimToNull((String) getRabbitmq().getOrDefault("virtualHost", "/"))).orElse("/");
- }
- public String getExchangeName() {
- return StringUtils.trimToNull((String) getRabbitmq().get("exchangeName"));
- }
- public String getRoutingKey() {
- return StringUtils.trimToNull((String) getRabbitmq().get("routingKey"));
- }
- public boolean getAutoDelete() {
- return Optional.ofNullable((Boolean) getRabbitmq().getOrDefault("autoDelete", false)).orElse(false);
- }
- }
|