Skip to content

Commit 911f055

Browse files
committed
日志采集时发生异常后跳过本次采集
1 parent 03e74ba commit 911f055

File tree

1 file changed

+21
-17
lines changed
  • api-boot-project/api-boot-plugins/api-boot-plugin-logging/src/main/java/org/minbox/framework/api/boot/plugin/logging/interceptor

1 file changed

+21
-17
lines changed

api-boot-project/api-boot-plugins/api-boot-plugin-logging/src/main/java/org/minbox/framework/api/boot/plugin/logging/interceptor/ApiBootLoggingInterceptor.java

Lines changed: 21 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -150,23 +150,27 @@ public boolean preHandle(HttpServletRequest request, HttpServletResponse respons
150150
*/
151151
@Override
152152
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
153-
// Get Current Thread ApiBoot Log Instance
154-
ApiBootLog log = ApiBootLogThreadLocal.get();
155-
if (!ObjectUtils.isEmpty(log)) {
156-
// set exception stack
157-
if (!ObjectUtils.isEmpty(ex)) {
158-
logger.debug("Request Have Exception,Execute Update HttpStatus.");
159-
log.setHttpStatus(HttpStatus.INTERNAL_SERVER_ERROR.value());
160-
log.setExceptionStack(StackTraceTools.getStackTrace(ex));
153+
try {
154+
// Get Current Thread ApiBoot Log Instance
155+
ApiBootLog log = ApiBootLogThreadLocal.get();
156+
if (!ObjectUtils.isEmpty(log)) {
157+
// set exception stack
158+
if (!ObjectUtils.isEmpty(ex)) {
159+
logger.debug("Request Have Exception,Execute Update HttpStatus.");
160+
log.setHttpStatus(HttpStatus.INTERNAL_SERVER_ERROR.value());
161+
log.setExceptionStack(StackTraceTools.getStackTrace(ex));
162+
}
163+
log.setHttpStatus(response.getStatus());
164+
log.setEndTime(System.currentTimeMillis());
165+
log.setTimeConsuming(log.getEndTime() - log.getStartTime());
166+
log.setResponseHeaders(HttpRequestTools.getResponseHeaders(response));
167+
log.setResponseBody(HttpRequestTools.getResponseBody(response));
168+
// publish logging event
169+
applicationContext.publishEvent(new ApiBootLoggingNoticeEvent(this, log));
161170
}
162-
log.setEndTime(System.currentTimeMillis());
163-
log.setTimeConsuming(log.getEndTime() - log.getStartTime());
164-
log.setResponseHeaders(HttpRequestTools.getResponseHeaders(response));
165-
log.setResponseBody(HttpRequestTools.getResponseBody(response));
166-
167-
// publish logging event
168-
applicationContext.publishEvent(new ApiBootLoggingNoticeEvent(this, log));
169-
171+
} catch (Exception e) {
172+
logger.error(e.getMessage(), e);
173+
} finally {
170174
// Remove ApiBoot Log
171175
ApiBootLogThreadLocal.remove();
172176
}
@@ -184,7 +188,7 @@ private String getOrCreateTraceId(HttpServletRequest request) {
184188
// if request header don't have traceId
185189
// create new traceId
186190
if (ObjectUtils.isEmpty(traceId)) {
187-
logger.debug("Request Header Dont't Have TraceId,Create New TraceId Now.");
191+
logger.debug("Request Header Don't Have TraceId,Create New TraceId Now.");
188192
traceId = apiBootLoggingTracer.createTraceId();
189193
}
190194
logger.debug("Request TraceId:{}", traceId);

0 commit comments

Comments
 (0)