Repolode
rs

rs/zerolog

체이닝 API와 레벨·샘플링 로깅, 선택적 CBOR 출력을 지원하는 Go용 제로 할당 JSON 로거

스타
12,519
포크
657
열린 이슈
166
마지막 커밋
10일 전

어떤 프로젝트인가요?

Zerolog는 Go용 구조화 로깅 라이브러리로, 이벤트를 JSON으로 기록하며 빌드 태그를 사용하면 CBOR로도 기록할 수 있습니다. 체이닝 API를 통해 리플렉션 없이 강한 타입의 키-값 필드를 추가해 로그 이벤트를 구성하므로, 벤치마크에서 일반적인 경로의 할당을 0으로 유지합니다.

trace부터 panic까지 7개 레벨을 지원하며, 전역 및 로거별 레벨 제어, 로그 샘플링, 모든 이벤트에 필드를 추가할 수 있는 훅을 제공합니다. context.Context에 로거를 연결한 뒤 나중에 가져올 수 있으며, hlog 패키지는 net/http 핸들러용 헬퍼를 제공합니다. 표준 log/slog API를 사용하는 코드에서 레코드를 zerolog를 통해 처리할 수 있도록 slog.Handler도 포함되어 있습니다.

로컬 개발에서는 zerolog.ConsoleWriter를 사용해 이벤트를 색상이 있는 읽기 쉬운 행으로 출력할 수 있습니다. 다만 JSON 경로보다 느리므로 프로덕션용은 아닙니다. 오류의 스택 트레이스는 pkgerrors 서브패키지를 통해 사용할 수 있습니다.

핵심 기능

  • 01일반적인 경로에서 리플렉션이나 할당 없이 JSON 또는 CBOR을 기록하는 체이닝 API
  • 02전역 레벨 제어를 지원하는 7단계 로그 레벨
  • 03버스트 샘플러와 기본 샘플러를 포함한 로그 샘플링
  • 04모든 이벤트에 필드를 추가하는 훅
  • 05context.Context, net/http 핸들러 및 log/slog 통합
  • 06로컬에서 색상 출력이 가능한 ConsoleWriter

활용 사례

  • 할당 오버헤드가 중요한 고처리량 Go 서비스의 로깅
  • 로그 집계 시스템에서 수집할 구조화된 JSON 로그 출력
  • HTTP 서버 로그에 요청 범위 필드 추가
  • 기존 slog 기반 코드를 JSON 백엔드에 연결

빠른 시작

  1. 1

    모듈을 설치합니다

    go get -u github.com/rs/zerolog/log
  2. 2

    전역 로거를 가져와 메시지를 기록합니다

사용 전 알아둘 점

  • 구조화된 JSON(또는 CBOR) 출력에 중점을 둡니다. 콘솔에서 보기 좋은 출력을 사용하려면 효율성이 낮은 ConsoleWriter가 필요합니다.

포함된 컬렉션

토픽

자주 묻는 질문

zerolog은(는) 무엇인가요?
체이닝 API와 레벨·샘플링 로깅, 선택적 CBOR 출력을 지원하는 Go용 제로 할당 JSON 로거 Zerolog는 Go용 구조화 로깅 라이브러리로, 이벤트를 JSON으로 기록하며 빌드 태그를 사용하면 CBOR로도 기록할 수 있습니다. 체이닝 API를 통해 리플렉션 없이 강한 타입의 키-값 필드를 추가해 로그 이벤트를 구성하므로, 벤치마크에서 일반적인 경로의 할당을 0으로 유지합니다.
zerolog은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
zerolog은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
zerolog은(는) 아직 유지보수되고 있나요?
활발히 유지보수 중. zerolog의 마지막 커밋은 2026년 10월 14일입니다.
zerolog은(는) 어디에 사용할 수 있나요?
할당 오버헤드가 중요한 고처리량 Go 서비스의 로깅 로그 집계 시스템에서 수집할 구조화된 JSON 로그 출력 HTTP 서버 로그에 요청 범위 필드 추가 기존 slog 기반 코드를 JSON 백엔드에 연결
zerolog는 어떻게 설치하나요?
모듈을 설치합니다: go get -u github.com/rs/zerolog/log 전역 로거를 가져와 메시지를 기록합니다
zerolog은(는) 어디서 받을 수 있나요?
소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/rs/zerolog

요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.

관련 프로젝트