Gin 미들웨어에 응답 본문 로깅
Gin에서 미들웨어에 응답 본문을 로깅하려면 응답을 작성하기 전에 가로채서 저장해야 합니다. . 이를 달성하는 방법은 다음과 같습니다.
Write() 호출을 가로채고 본문을 저장하는 사용자 정의 작성기를 만듭니다.
import bytes class bodyLogWriter(gin.ResponseWriter): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.body = bytes.Buffer() def Write(self, data): self.body.write(data) return super().Write(data)
사용자 정의 작성기를 사용하여 응답을 가로채는 미들웨어 기능을 구현합니다.
from functools import wraps def gin_body_log_middleware(func): @wraps(func) def inner(context, *args, **kwargs): context.writer = bodyLogWriter(context.writer) wrapped_func(context, *args, **kwargs) status_code = context.writer.status_code if status_code >= 400: # Access the logged response body print("Response body:", context.writer.body.getvalue().decode()) return inner
Gin에 미들웨어를 등록하세요. router:
router.Use(gin_body_log_middleware)
이 미들웨어는 모든 응답을 가로채고 상태 코드가 400 이상인 요청의 본문을 기록합니다. 정적 파일 요청의 경우 Gin 엔진을 래핑하는 보다 정교한 래퍼가 필요합니다.
위 내용은 Gin 미들웨어에서 응답 본문을 기록하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!