다양한 데이터 소스의 메트릭, 로그, 트레이스를 조회하고 시각화하며 알림을 설정하고 탐색할 수 있는 오픈소스 플랫폼입니다.
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
vcpkg와 같은 패키지 관리자로 Quill을 설치합니다
vcpkg install quill - 2
Homebrew로 Quill을 설치합니다
brew install quill - 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 통계는 매일 갱신됩니다.
관련 프로젝트
Prometheus는 메트릭을 수집하고 규칙을 평가하며 알림을 발생시키는 오픈소스 시스템 및 서비스 모니터링 시스템입니다.
로그, 메트릭, 트레이스, 알림을 하나로 모은 오픈소스 OpenTelemetry 기반 셀프 호스팅 관측성 플랫폼
Grafana Labs가 만든 수평 확장형 멀티 테넌트 로그 집계 시스템으로, 로그 내용이 아닌 레이블만 인덱싱합니다.
분산 및 클라우드 네이티브 마이크로서비스 아키텍처를 모니터링하고 추적·진단하는 APM 시스템입니다.
Rust로 구축한 셀프 호스팅 가능한 관측성 플랫폼으로, 로그·메트릭·트레이스·RUM·LLM 모니터링을 지원하며 Datadog과 Splunk의 대안으로 소개됩니다.