C++, 자바(Java), C# 개발자를 위한 새로운 경량 로깅 라이브러리 'Light-Weight-Logger'가 최근 공개되어 주목받고 있습니다. 이 라이브러리는 기존 로깅 도구들이 제공하는 고정된 로그 레벨과 출력 방식에서 벗어나, 개발자가 직접 로그 형식 문자열과 ANSI 색상을 정의하여 완전히 맞춤화된 터미널 로그를 생성할 수 있도록 설계되었습니다.
Light-Weight-Logger의 가장 큰 특징은 '형식 문자열 미니 언어(format-string mini-language)'를 제공한다는 점입니다. 개발자는 `%C` (색상), `%N` (레벨 이름), `%M` (메시지), `%D` (날짜), `%T` (시간), `%F` (소스 파일), `%L` (라인 번호) 등 다양한 지정자(specifier)를 조합하여 원하는 로그 형식을 만들 수 있습니다. 예를 들어, `"%C[%N]%c%S %G[%D %T %Z]%c -> %M"`와 같이 정의하면, 로그 레벨에 따라 색상이 바뀌고, 날짜, 시간, 시간대 정보가 회색으로 표시되며, 메시지가 출력되는 형태를 만들 수 있습니다. 또한, 모든 포트에서 서드파티 의존성이 없으며, C++의 경우 헤더 파일 하나로, C#과 자바는 두 개의 파일로 구성되어 프로젝트에 쉽게 통합할 수 있습니다. 특히 `%S` 지정자를 통해 로그 레벨 이름의 길이에 맞춰 자동으로 공백을 추가하여 열 정렬을 유지하는 기능은 가독성을 크게 높여줍니다.
이러한 유연성은 개발자가 특정 프로젝트나 디버깅 상황에 최적화된 로그 시스템을 구축할 수 있게 합니다. 예를 들어, 동시성 애플리케이션에서는 스레드 ID를 포함한 로그가 유용하고, 디버깅 시에는 소스 파일과 라인 번호를 포함한 상세 로그가 필요할 수 있습니다. Light-Weight-Logger는 이러한 다양한 요구사항을 충족시키면서도 경량성을 유지하여, 시스템 자원 소모를 최소화합니다. 이는 특히 임베디드 시스템이나 성능에 민감한 애플리케이션 개발에 큰 이점으로 작용할 수 있습니다. 개발자는 이 라이브러리를 통해 로그를 단순한 기록 도구가 아닌, 시스템 상태를 파악하고 문제를 진단하는 강력한 도구로 활용할 수 있을 것입니다.