log.error()未记录严重性错误,而是记录了信息

时间:2019-09-30 13:14:24

标签: spring-boot slf4j stackdriver google-cloud-stackdriver

我要求如果我使用log.error(e)登录;我必须得到严重性:错误,而我却收到信息。 请帮助实现此目标。

  @Slf4j
   @ControllerAdvice
   public class CustomExceptionHandler extends ResponseEntityExceptionHandler {
     @ExceptionHandler(SpannerException.class)
public final ResponseEntity<Object> handleUserNotFoundException(SpannerException ex, WebRequest request) {
    List<String> details = new ArrayList<>();
    details.add(ex.getErrorCode().toString());
    ErrorResponse error = new ErrorResponse("Exception occured", details);
    log.error("Exception:" + ex.getMessage());
    return new ResponseEntity(error, HttpStatus.INTERNAL_SERVER_ERROR);
}

}

我的logback.xml

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <include resource="org/springframework/cloud/gcp/logging/logback-json-appender.xml" />
    <include resource="org/springframework/boot/logging/logback/defaults.xml" />
    <include resource="org/springframework/boot/logging/logback/console-appender.xml" />
    <appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender">
        <appender-ref ref="CONSOLE" />
    </appender>

    <root level="INFO">
        <appender-ref ref="ASYNC" />
    </root>
</configuration>

在StackDriver中,我看到严重性为INFO。

1 个答案:

答案 0 :(得分:1)

如果要编写日志条目,则应将其他严重性编码映射到这些标准级别之一。例如,您可能将所有Java的FINE,FINER和FINEST级别映射到LogSeverity.DEBUG。您可以根据需要在日志条目有效负载中保留原始的严重性级别。

您可以找到其他LogSeverity枚举HERE的列表,错误为(500)