표준 logging 설정 대신 단일 logger로 파일 로테이션, 컬러 출력, 구조화된 로그를 제공하는 Python 로깅 라이브러리입니다.
armink/EasyLogger
리소스가 제한된 임베디드 기기를 위한 초경량 C/C++ 로깅 라이브러리로, 필터링·컬러 출력·출력 대상 플러그인을 지원합니다.
- 스타
- 4,799
- 포크
- 1,323
- 열린 이슈
- 82
- 마지막 커밋
- 그저께
어떤 프로젝트인가요?
EasyLogger는 IoT 제품, 웨어러블, 스마트 홈 기기처럼 리소스에 민감한 프로젝트를 위해 설계된 C/C++ 로깅 라이브러리입니다. 코드와 RAM 사용량을 매우 작게 유지하며, log4c나 zlog 같은 무거운 라이브러리보다 빠르게 도입할 수 있도록 인터페이스를 의도적으로 간결하게 구성했습니다.
로그 출력 대상은 사용자가 정의하므로 터미널, 파일, 데이터베이스, 시리얼 포트, RS-485 또는 플래시 메모리로 메시지를 보낼 수 있습니다. 각 항목에는 레벨, 타임스탬프, 스레드 및 프로세스 정보가 포함될 수 있으며, 태그·레벨·키워드 기준 필터링을 컴파일 타임과 런타임 모두에서 지원합니다. 로그 레벨은 서로 다른 색으로 표시되며 RAW 및 hexdump 형식도 지원합니다. RT-Thread, uC/OS, Linux, Windows, NuttX 및 베어메탈 플랫폼에서 실행되며, 스레드 안전·비동기·버퍼링 출력 모드를 제공합니다.
EasyFlash를 통한 플래시 기반 로그 저장과 파일 로테이션 같은 추가 기능은 플러그인으로 제공됩니다.
핵심 기능
- 01ROM 1.6K 미만, RAM 0.3K의 초소형 풋프린트.
- 02터미널, 파일, 플래시, 시리얼 또는 데이터베이스 등 사용자가 출력 대상을 지정할 수 있습니다.
- 03태그, 레벨, 키워드 기준 정적·동적 필터링.
- 04스레드 안전·비동기·버퍼링 출력 모드.
- 05레벨별 컬러 출력과 RAW 및 hexdump 형식 지원.
- 06플래시 로그 저장 및 파일 로테이션 플러그인.
활용 사례
- 리소스가 제한된 IoT 또는 웨어러블 펌웨어의 로깅.
- RT-Thread 또는 베어메탈 대상 임베디드 기기 디버깅.
- 파일 시스템이 없는 시스템에서 플래시에 기기 로그 저장.
- 대규모 C 프로젝트에 태그 기반 로그 필터링 추가.
빠른 시작
- 1
포팅하기 전에 docs/zh의 중국어 문서를 읽으세요
- 2
docs/zh/port/kernel.md에 따라 라이브러리를 프로젝트에 포팅하세요
사용 전 알아둘 점
- 패키지 매니저를 통한 설치는 지원하지 않습니다. 소스 코드를 프로젝트에 포팅해야 합니다.
- 설정은 전역 싱글턴이므로 출력 대상별로 복잡한 설정을 구성할 수 없습니다.
- 주요 문서와 README는 중국어로 작성되어 있습니다.
포함된 컬렉션
토픽
자주 묻는 질문
- EasyLogger은(는) 무엇인가요?
- 리소스가 제한된 임베디드 기기를 위한 초경량 C/C++ 로깅 라이브러리로, 필터링·컬러 출력·출력 대상 플러그인을 지원합니다. EasyLogger는 IoT 제품, 웨어러블, 스마트 홈 기기처럼 리소스에 민감한 프로젝트를 위해 설계된 C/C++ 로깅 라이브러리입니다. 코드와 RAM 사용량을 매우 작게 유지하며, log4c나 zlog 같은 무거운 라이브러리보다 빠르게 도입할 수 있도록 인터페이스를 의도적으로 간결하게 구성했습니다.
- EasyLogger은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- EasyLogger은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- EasyLogger은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. EasyLogger의 마지막 커밋은 2026년 11월 5일입니다.
- EasyLogger은(는) 어디에 사용할 수 있나요?
- 리소스가 제한된 IoT 또는 웨어러블 펌웨어의 로깅. RT-Thread 또는 베어메탈 대상 임베디드 기기 디버깅. 파일 시스템이 없는 시스템에서 플래시에 기기 로그 저장. 대규모 C 프로젝트에 태그 기반 로그 필터링 추가.
- EasyLogger는 어떻게 설치하나요?
- 포팅하기 전에 docs/zh의 중국어 문서를 읽으세요 docs/zh/port/kernel.md에 따라 라이브러리를 프로젝트에 포팅하세요
- EasyLogger은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/armink/EasyLogger
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
다양한 CPU 아키텍처의 리소스 제약이 있는 마이크로컨트롤러와 IoT 기기를 위한 확장성 높은 실시간 운영체제(RTOS)입니다.
임베디드 개발을 위한 크로스 플랫폼 CLI 도구이자 빌드 시스템으로, 라이브러리 관리, 다양한 보드와 프레임워크, 디버깅 및 단위 테스트를 지원합니다.
터미널에서 보기 좋은 출력을 제공하고, 필드 우선 구조의 JSON과 비밀 정보 마스킹을 지원하며 런타임 의존성이 없는 범용 TypeScript 및 JavaScript 로거입니다.
50개 이상의 MCU 제품군에서 메모리와 스레드 안전성을 고려해 설계된, 임베디드 시스템용 오픈소스 크로스 플랫폼 USB Host 및 Device 스택입니다.
Deno, Node.js, Bun, 브라우저, 엣지 함수에서 실행되는 JavaScript 및 TypeScript용 무의존성 로깅 라이브러리입니다.