0

次のようにフィールドに制約を設定しました。

import javax.validation.constraints.Pattern;

@Pattern(regexp=SOME_REGEX)
private String someField;

正規表現は正しく機能していますが、無効な値の場合、値がログに記録されます。

[Field error in object 'containingSomeField' on field 'someField': rejected value [InvalidValue123];

注釈でこのロギングを無効にする方法はありますか? これまでのところ何も見つかりませんでした。

一般的にログを無効にしたくはありません。この値の出力だけです。値をマスキングするだけで十分です。

編集:

私自身の質問に対する答えを見つけました。デフォルトの例外ハンドラーをオーバーライドできます。

@ControllerAdvice
public class ResponseExceptionHandler extends ResponseEntityExceptionHandler {
 
  @Override
  public final ResponseEntity<Object> handleMethodArgumentNotValid(
      MethodArgumentNotValidException ex,
      @NonNull HttpHeaders headers,
      @NonNull HttpStatus status,
      @NonNull WebRequest request
  ) {
    // Your code here
  }
}
4

1 に答える 1