middleware

package
v1.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 18, 2025 License: MIT Imports: 12 Imported by: 0

Documentation

Overview

Package middleware HTTP 요청/응답 로깅을 위한 미들웨어를 제공합니다.

이 패키지는 Echo 프레임워크와 통합되어 모든 HTTP 요청과 응답을 구조화된 로그로 기록합니다. 민감한 쿼리 파라미터는 자동으로 마스킹되어 보안을 유지합니다.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func HTTPLogger added in v1.0.1

func HTTPLogger() echo.MiddlewareFunc

HTTPLogger HTTP 요청/응답 정보를 로깅하는 미들웨어를 반환합니다.

이 미들웨어는 다음 정보를 구조화된 로그로 기록합니다:

  • 요청 정보: IP, 메서드, URI, User-Agent 등
  • 응답 정보: 상태 코드, 응답 크기
  • 성능 정보: 요청 처리 시간
  • 민감 정보: 쿼리 파라미터의 민감 정보는 자동으로 마스킹됨

로그 필드:

  • time_rfc3339: 요청 완료 시각 (RFC3339 형식)
  • remote_ip: 클라이언트 IP 주소
  • host: 요청 호스트
  • uri: 요청 URI (민감 정보 마스킹됨)
  • method: HTTP 메서드 (GET, POST 등)
  • path: URL 경로
  • referer: Referer 헤더
  • user_agent: User-Agent 헤더
  • status: HTTP 응답 상태 코드
  • latency: 요청 처리 시간 (마이크로초)
  • latency_human: 요청 처리 시간 (사람이 읽기 쉬운 형식)
  • bytes_in: 요청 본문 크기 (바이트)
  • bytes_out: 응답 본문 크기 (바이트)
  • request_id: 요청 ID (X-Request-ID 헤더)

사용 예시:

e := echo.New()
e.Use(middleware.HTTPLogger())

func PanicRecovery added in v1.0.1

func PanicRecovery() echo.MiddlewareFunc

PanicRecovery panic을 복구하고 로깅하는 미들웨어를 반환합니다.

이 미들웨어는 핸들러에서 발생한 panic을 복구하여 서버 다운을 방지하고, 스택 트레이스와 함께 에러를 로깅합니다.

Types

type Logger

type Logger struct {
	*logrus.Logger
}

Logger Echo의 log.Logger 인터페이스를 구현하는 Logrus 어댑터입니다. 이 어댑터 패턴을 통해 Echo 프레임워크가 Logrus를 사용하여 로깅할 수 있도록 합니다.

Echo는 자체 Logger 인터페이스(github.com/labstack/gommon/log.Logger)를 정의하고 있으며, 이 인터페이스의 모든 메서드를 구현해야 Echo와 통합할 수 있습니다. 아래의 메서드들은 대부분 Logrus의 해당 메서드로 단순 위임하는 보일러플레이트 코드입니다.

func (Logger) Debug

func (l Logger) Debug(i ...interface{})

func (Logger) Debugf

func (l Logger) Debugf(format string, args ...interface{})

func (Logger) Debugj

func (l Logger) Debugj(j log.JSON)

func (Logger) Error

func (l Logger) Error(i ...interface{})

func (Logger) Errorf

func (l Logger) Errorf(format string, args ...interface{})

func (Logger) Errorj

func (l Logger) Errorj(j log.JSON)

func (Logger) Fatal

func (l Logger) Fatal(i ...interface{})

func (Logger) Fatalf

func (l Logger) Fatalf(format string, args ...interface{})

func (Logger) Fatalj

func (l Logger) Fatalj(j log.JSON)

func (Logger) Info

func (l Logger) Info(i ...interface{})

func (Logger) Infof

func (l Logger) Infof(format string, args ...interface{})

func (Logger) Infoj

func (l Logger) Infoj(j log.JSON)

func (Logger) Level

func (l Logger) Level() log.Lvl

Level Logrus의 로그 레벨을 Echo의 로그 레벨로 변환합니다.

func (Logger) Output

func (l Logger) Output() io.Writer

Output 현재 출력 Writer를 반환합니다.

func (Logger) Panic

func (l Logger) Panic(i ...interface{})

func (Logger) Panicf

func (l Logger) Panicf(format string, args ...interface{})

func (Logger) Panicj

func (l Logger) Panicj(j log.JSON)

func (Logger) Prefix

func (l Logger) Prefix() string

func (Logger) Print

func (l Logger) Print(i ...interface{})

func (Logger) Printf

func (l Logger) Printf(format string, args ...interface{})

func (Logger) Printj

func (l Logger) Printj(j log.JSON)

func (Logger) SetHeader

func (l Logger) SetHeader(string)

func (Logger) SetLevel

func (l Logger) SetLevel(lvl log.Lvl)

SetLevel Echo의 로그 레벨을 Logrus의 로그 레벨로 변환하여 설정합니다.

func (Logger) SetOutput

func (l Logger) SetOutput(w io.Writer)

func (Logger) SetPrefix

func (l Logger) SetPrefix(string)

func (Logger) Warn

func (l Logger) Warn(i ...interface{})

func (Logger) Warnf

func (l Logger) Warnf(format string, args ...interface{})

func (Logger) Warnj

func (l Logger) Warnj(j log.JSON)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL