fix(log/httptrace-pro): 修复 IP 配置解析错误,并缩小日志异常影响范围

This commit is contained in:
2023-12-21 20:57:33 +08:00
parent e0e5944b45
commit 2a70a9a252
3 changed files with 26 additions and 15 deletions

View File

@@ -82,8 +82,8 @@ public class ProjectProperties {
public static final boolean IP_ADDR_LOCAL_PARSE_ENABLED; public static final boolean IP_ADDR_LOCAL_PARSE_ENABLED;
static { static {
String underlineCaseProperty = SpringUtil.getProperty("ip-addr-local-parse-enabled"); String underlineCaseProperty = SpringUtil.getProperty("project.ip-addr-local-parse-enabled");
String camelCaseProperty = SpringUtil.getProperty("ipAddrLocalParseEnabled"); String camelCaseProperty = SpringUtil.getProperty("project.ipAddrLocalParseEnabled");
IP_ADDR_LOCAL_PARSE_ENABLED = Convert.toBool(underlineCaseProperty, false) || Convert.toBool(camelCaseProperty, false); IP_ADDR_LOCAL_PARSE_ENABLED = Convert.toBool(underlineCaseProperty, false) || Convert.toBool(camelCaseProperty, false);
} }

View File

@@ -16,7 +16,9 @@
package top.charles7c.continew.starter.core.util; package top.charles7c.continew.starter.core.util;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.net.NetUtil; import cn.hutool.core.net.NetUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.extra.spring.SpringUtil; import cn.hutool.extra.spring.SpringUtil;
import cn.hutool.http.HtmlUtil; import cn.hutool.http.HtmlUtil;
import cn.hutool.http.HttpUtil; import cn.hutool.http.HttpUtil;
@@ -28,6 +30,9 @@ import lombok.extern.slf4j.Slf4j;
import net.dreamlu.mica.ip2region.core.Ip2regionSearcher; import net.dreamlu.mica.ip2region.core.Ip2regionSearcher;
import net.dreamlu.mica.ip2region.core.IpInfo; import net.dreamlu.mica.ip2region.core.IpInfo;
import top.charles7c.continew.starter.core.autoconfigure.project.ProjectProperties; import top.charles7c.continew.starter.core.autoconfigure.project.ProjectProperties;
import top.charles7c.continew.starter.core.constant.StringConstants;
import java.util.Set;
/** /**
* IP 工具类 * IP 工具类
@@ -86,7 +91,9 @@ public class IpUtils {
Ip2regionSearcher ip2regionSearcher = SpringUtil.getBean(Ip2regionSearcher.class); Ip2regionSearcher ip2regionSearcher = SpringUtil.getBean(Ip2regionSearcher.class);
IpInfo ipInfo = ip2regionSearcher.memorySearch(ip); IpInfo ipInfo = ip2regionSearcher.memorySearch(ip);
if (null != ipInfo) { if (null != ipInfo) {
return ipInfo.getAddress(); Set<String> regionSet = CollUtil.newLinkedHashSet(ipInfo.getAddress(), ipInfo.getIsp());
regionSet.removeIf(StrUtil::isBlank);
return String.join(StringConstants.SPACE, regionSet);
} }
return null; return null;
} }

View File

@@ -69,6 +69,7 @@ public class LogInterceptor implements HandlerInterceptor {
timestampTtl.remove(); timestampTtl.remove();
Set<Include> includeSet = properties.getInclude(); Set<Include> includeSet = properties.getInclude();
RecordableServletHttpRequest sourceRequest = new RecordableServletHttpRequest(request); RecordableServletHttpRequest sourceRequest = new RecordableServletHttpRequest(request);
try {
LogRecord.Started startedLogRecord = LogRecord.start(timestamp, sourceRequest); LogRecord.Started startedLogRecord = LogRecord.start(timestamp, sourceRequest);
RecordableServletHttpResponse sourceResponse = new RecordableServletHttpResponse(response, response.getStatus()); RecordableServletHttpResponse sourceResponse = new RecordableServletHttpResponse(response, response.getStatus());
LogRecord finishedLogRecord = startedLogRecord.finish(sourceResponse, includeSet); LogRecord finishedLogRecord = startedLogRecord.finish(sourceResponse, includeSet);
@@ -82,6 +83,9 @@ public class LogInterceptor implements HandlerInterceptor {
this.logModule(finishedLogRecord, handlerMethod); this.logModule(finishedLogRecord, handlerMethod);
} }
dao.add(finishedLogRecord); dao.add(finishedLogRecord);
} catch (Exception ex) {
log.error("Logging http log occurred an error: {}.", ex.getMessage(), ex);
}
} }
/** /**