Repolode
odygrd

odygrd/quill

포맷과 I/O를 백그라운드 스레드로 미루는 초저지연 비동기 C++17 로깅 및 메트릭 라이브러리입니다.

스타
3,057
포크
274
열린 이슈
7
마지막 커밋
4일 전

어떤 프로젝트인가요?

Quill은 지연 시간에 민감한 애플리케이션 스레드에서 포맷과 I/O를 처리하지 않는 C++17 로깅 라이브러리입니다. 호출 스레드는 로그 인자를 스레드별 lock-free 큐에 인코딩하기만 하고, 전용 백엔드 워커가 나중에 이를 디코딩해 {fmt}로 포맷한 뒤 설정된 싱크에 기록합니다.

텍스트 로그뿐 아니라 Quill은 사전 등록된 메트릭 샘플도 동일한 비동기 백엔드를 통해 내보낼 수 있습니다. 기본 제공 Prometheus 싱크는 카운터, 게이지, 히스토그램, 요약 통계를 처리하며, 사용자 지정 싱크를 사용해 샘플을 StatsD, OpenTelemetry 또는 다른 수집기로 전달할 수 있습니다. 컬러 콘솔 출력, 로테이션 파일, JSON 출력, 싱크별 필터, MDC 컨텍스트, 속도 제한 매크로, 백트레이스 로깅도 포함됩니다.

이 라이브러리는 Linux, macOS, Windows, BSD를 지원하며 vcpkg, Conan, Homebrew, Conda, Bzlmod 및 여러 패키지 관리자로 설치하거나 CMake에 벤더링할 수 있습니다. 최저 지연 시간을 위한 매크로 API와 매크로 없이 사용하는 함수 API를 모두 제공합니다.

핵심 기능

  • 01호출 스레드에서 로그 인자를 인코딩하고 백그라운드 워커에서 포맷합니다.
  • 02기본 제공 Prometheus 싱크와 사용자 지정 싱크로 사전 등록된 메트릭을 내보냅니다.
  • 03컬러 콘솔 출력, 로테이션 파일, JSON 로깅을 지원합니다.
  • 04싱크별 필터, MDC 컨텍스트, 속도 제한 로그 매크로를 제공합니다.
  • 05블로킹 또는 드롭 동작을 선택할 수 있는 크기 제한 및 무제한 큐를 설정할 수 있습니다.
  • 06크래시 시그널 핸들러와 Android 로깅 싱크를 포함합니다.

활용 사례

  • 지연 시간에 민감한 C++ 트레이딩, 로보틱스 또는 실시간 시스템에서 로깅하기.
  • 처리량이 높은 C++ 서비스에 비동기 구조화 로깅 추가하기.
  • C++ 프로세스에서 애플리케이션 메트릭을 Prometheus로 내보내기.
  • Linux, macOS, Windows, BSD 또는 Android 대상에서 C++ 로깅 실행하기.

빠른 시작

  1. 1

    vcpkg와 같은 패키지 관리자로 Quill을 설치합니다

    vcpkg install quill
  2. 2

    Homebrew로 Quill을 설치합니다

    brew install quill
  3. 3

    Quickest Setup 예제에 나온 것처럼 C++ 코드에서 simple_logger()를 사용하면 콘솔이나 파일에 로그를 남길 수 있습니다

사용 전 알아둘 점

  • C++17 이상이 필요합니다.

토픽

자주 묻는 질문

quill은(는) 무엇인가요?
포맷과 I/O를 백그라운드 스레드로 미루는 초저지연 비동기 C++17 로깅 및 메트릭 라이브러리입니다. Quill은 지연 시간에 민감한 애플리케이션 스레드에서 포맷과 I/O를 처리하지 않는 C++17 로깅 라이브러리입니다. 호출 스레드는 로그 인자를 스레드별 lock-free 큐에 인코딩하기만 하고, 전용 백엔드 워커가 나중에 이를 디코딩해 {fmt}로 포맷한 뒤 설정된 싱크에 기록합니다.
quill은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
quill은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
quill은(는) 아직 유지보수되고 있나요?
활발히 유지보수 중. quill의 마지막 커밋은 2026년 10월 17일입니다.
quill은(는) 어디에 사용할 수 있나요?
지연 시간에 민감한 C++ 트레이딩, 로보틱스 또는 실시간 시스템에서 로깅하기. 처리량이 높은 C++ 서비스에 비동기 구조화 로깅 추가하기. C++ 프로세스에서 애플리케이션 메트릭을 Prometheus로 내보내기. Linux, macOS, Windows, BSD 또는 Android 대상에서 C++ 로깅 실행하기.
quill는 어떻게 설치하나요?
vcpkg와 같은 패키지 관리자로 Quill을 설치합니다: vcpkg install quill Homebrew로 Quill을 설치합니다: brew install quill Quickest Setup 예제에 나온 것처럼 C++ 코드에서 simple_logger()를 사용하면 콘솔이나 파일에 로그를 남길 수 있습니다
quill은(는) 어디서 받을 수 있나요?
소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/odygrd/quill

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

관련 프로젝트