Iris 웹 프레임워크용 accesslog 미들웨어는 수신되는 HTTP 요청에 대한 자세한 로깅을 제공합니다. 이 미들웨어는 고도로 구성 가능하며 사용자 정의 필드를 포함하여 요청 및 응답의 다양한 측면을 기록할 수 있습니다.
특징
- 요청 및 응답 세부정보를 기록합니다.
- 다양한 출력 형식(JSON, CSV, 맞춤 템플릿)을 지원합니다.
- 여러 대상(파일, stdout 등)에 로그인할 수 있습니다.
- 비동기 로깅을 지원합니다.
- 사용자 정의 가능한 로그 필드.
- 미들웨어를 조건부로 적용할 수 있습니다.
설치
accesslog 미들웨어를 사용하려면 Iris 애플리케이션에서 이를 가져와야 합니다.
import ( "github.com/kataras/iris/v12" "github.com/kataras/iris/v12/middleware/accesslog" )
기본 사용법
다음은 Iris 애플리케이션에서 accesslog 미들웨어를 사용하는 방법에 대한 기본 예입니다.
package main import ( "github.com/kataras/iris/v12" "github.com/kataras/iris/v12/middleware/accesslog" ) func makeAccessLog() *accesslog.AccessLog { ac := accesslog.File("./access.log") ac.Delim = '|' ac.TimeFormat = "2006-01-02 15:04:05" ac.Async = false ac.IP = true ac.BytesReceivedBody = true ac.BytesSentBody = true ac.BytesReceived = false ac.BytesSent = false ac.RequestBody = true ac.ResponseBody = false ac.KeepMultiLineError = true ac.PanicLog = accesslog.LogHandler ac.SetFormatter(&accesslog.JSON{ Indent: " ", HumanTime: true, }) return ac } func main() { ac := makeAccessLog() defer ac.Close() app := iris.New() app.UseRouter(ac.Handler) app.Get("/", func(ctx iris.Context) { ctx.WriteString("OK") }) app.Listen(":8080") }
구성 옵션
출력 대상
파일 또는 새로 만들기 기능을 사용하여 로그의 출력 대상을 설정할 수 있습니다.
ac := accesslog.File("./access.log") // or ac := accesslog.New(os.Stdout)
로그 형식
기본 로그 형식은 다음과 같습니다.
Time|Latency|Code|Method|Path|IP|Path Params Query Fields|Bytes Received|Bytes Sent|Request|Response|
다양한 포맷터를 사용하여 로그 형식을 맞춤설정할 수 있습니다.
JSON 포맷터
ac.SetFormatter(&accesslog.JSON{ Indent: " ", HumanTime: true, })
CSV 포맷터
ac.SetFormatter(&accesslog.CSV{})
사용자 정의 템플릿 포맷터
ac.SetFormatter(&accesslog.Template{Text: "{{.Code}}"})
사용자 정의 필드
로그 항목에 사용자 정의 필드를 추가할 수 있습니다.
ac.AddFields(func(ctx iris.Context, f *accesslog.Fields) { for k, v := range ctx.Request().Header { value := strings.Join(v, ", ") f.Set("request.header."+k, value) } })
비동기 로깅
성능 향상을 위해 비동기 로깅 활성화:
ac.Async = true
조건부 로깅
특정 경로나 조건에 대한 로깅을 건너뛸 수 있습니다.
app.UseRouter(accesslog.SkipHandler)
고급 사용법
여러 대상에 로깅
io.MultiWriter를 사용하여 여러 대상에 로그인할 수 있습니다.
ac.SetOutput(io.MultiWriter(os.Stdout, accesslog.File("./access.log")))
맞춤 시계
테스트에 유용한 로그 타임스탬프에 대한 사용자 정의 시계를 설정할 수 있습니다.
ac.Clock = accesslog.TClock(time.Now())
미들웨어 통합
accesslog 미들웨어를 다른 미들웨어와 통합:
app.UseRouter(ac.Handler) app.UseRouter(otherMiddleware)
예
JSON 파일에 요청 기록
ac := accesslog.File("access_log.json") ac.SetFormatter(&accesslog.JSON{ Indent: " ", HumanTime: true, }) app.UseRouter(ac.Handler)
로그 회전 사용
자세한 내용은 로그 회전 예시를 참고하세요.
사용자 정의 필드 및 템플릿
자세한 내용은 사용자 정의 필드 및 템플릿 예시를 참조하세요.
클라이언트에 대한 로그 수신 및 렌더링
자세한 내용은 로그 브로커 예시를 참고하세요.
결론
Iris용 accesslog 미들웨어는 HTTP 요청 및 응답을 기록하는 강력한 도구입니다. 유연한 구성 옵션과 사용자 정의 필드 및 형식 지원을 통해 모든 애플리케이션의 요구 사항에 맞게 맞춤화할 수 있습니다.
더 많은 예시와 자세한 사용법은 Iris 공식 문서를 참고하세요.
위 내용은 Iris용 AccessLog 미들웨어의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

이 기사는 프로파일 링 활성화, 데이터 수집 및 CPU 및 메모리 문제와 같은 일반적인 병목 현상을 식별하는 등 GO 성능 분석을 위해 PPROF 도구를 사용하는 방법을 설명합니다.

보안 통신에 널리 사용되는 오픈 소스 라이브러리로서 OpenSSL은 암호화 알고리즘, 키 및 인증서 관리 기능을 제공합니다. 그러나 역사적 버전에는 알려진 보안 취약점이 있으며 그 중 일부는 매우 유해합니다. 이 기사는 데비안 시스템의 OpenSSL에 대한 일반적인 취약점 및 응답 측정에 중점을 둘 것입니다. DebianopensSL 알려진 취약점 : OpenSSL은 다음과 같은 몇 가지 심각한 취약점을 경험했습니다. 심장 출혈 취약성 (CVE-2014-0160) :이 취약점은 OpenSSL 1.0.1 ~ 1.0.1F 및 1.0.2 ~ 1.0.2 베타 버전에 영향을 미칩니다. 공격자는이 취약점을 사용하여 암호화 키 등을 포함하여 서버에서 무단 읽기 민감한 정보를 사용할 수 있습니다.

이 기사는 GO에서 단위 테스트 작성, 모범 사례, 조롱 기술 및 효율적인 테스트 관리를위한 도구를 다루는 것에 대해 논의합니다.

이 기사는 단위 테스트를 위해 이동 중에 모의와 스터브를 만드는 것을 보여줍니다. 인터페이스 사용을 강조하고 모의 구현의 예를 제공하며 모의 집중 유지 및 어설 션 라이브러리 사용과 같은 모범 사례에 대해 설명합니다. 기사

이 기사에서는 GO의 제네릭에 대한 사용자 정의 유형 제약 조건을 살펴 봅니다. 인터페이스가 일반 함수에 대한 최소 유형 요구 사항을 정의하여 유형 안전 및 코드 재사성을 향상시키는 방법에 대해 자세히 설명합니다. 이 기사는 또한 한계와 모범 사례에 대해 설명합니다

이 기사는 코드의 런타임 조작, 직렬화, 일반 프로그래밍에 유리한 런타임 조작에 사용되는 GO의 반사 패키지에 대해 설명합니다. 실행 속도가 느리고 메모리 사용이 높아짐, 신중한 사용 및 최고와 같은 성능 비용을 경고합니다.

이 기사는 추적 도구를 사용하여 GO 응용 프로그램 실행 흐름을 분석합니다. 수동 및 자동 계측 기술, Jaeger, Zipkin 및 OpenTelemetry와 같은 도구 비교 및 효과적인 데이터 시각화를 강조합니다.

이 기사는 테스트 케이스 테이블을 사용하여 여러 입력 및 결과로 기능을 테스트하는 방법 인 GO에서 테이블 중심 테스트를 사용하는 것에 대해 설명합니다. 가독성 향상, 중복 감소, 확장 성, 일관성 및 A와 같은 이점을 강조합니다.


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

SublimeText3 영어 버전
권장 사항: Win 버전, 코드 프롬프트 지원!

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경
