소개
smartlog은 고성능 TUI 기반 로그 테일러로, JSON 자동 감지와 실시간 필터링 기능을 제공합니다. Felipe Pires Morandini가 Rust로 개발하여 터미널에서 로그를 실시간으로 테일링하고 필터링할 수 있도록 설계되었습니다. JSON 형식의 로그를 자동으로 감지하여 하이라이트하고, 일반 텍스트 스트림도 처리할 수 있습니다.
상세정보
로그 테일링 및 입력 처리
smartlog은 --file 옵션을 통해 특정 로그 파일을 테일링하거나, 파이프를 통해 표준 입력(stdin)으로 로그 데이터를 전달받을 수 있습니다. 파일이 truncate되거나 로테이션될 경우 자동으로 새로운 파일 시작부터 읽기를 재개합니다.
JSON 자동 감지 및 하이라이트
JSON 형식의 로그를 자동으로 감지하여 레벨에 따라 색상을 적용하여 pretty-print합니다. 지원하는 레벨 필드는 level, severity, lvl이며, ERROR/FATAL은 빨간색, WARN은 노란색, INFO는 초록색, DEBUG/TRACE는 파란색으로 표시됩니다.
실시간 필터링
/ 키를 눌러 필터 모드에 진입한 후 검색어를 입력하고 Enter로 적용할 수 있습니다. ESC로 필터를 해제할 수 있으며, r 키로 정규 표현식 모드를 전환할 수 있습니다.
로그 레벨 필터링
l 키를 눌러 로그 레벨 필터를 순환할 수 있습니다: ALL → ERROR → WARN → INFO → DEBUG → ALL. 텍스트/정규 표현식 필터와 결합하여 사용할 수 있습니다.
추가 기능
w 키로 줄 바꿈을 토글하고, t 키로 상대 타임스탬프 표시를 토글하며, T 키로 다크, 라이트, 솔라라이즈드, 드라큘라 테마를 순환할 수 있습니다. e 키로 현재 필터링된 로그를 파일에 내보낼 수 있습니다.
설치 및 시작 방법
Windows에서는 winget 패키지 관리자를 통해 winget install FelipeMorandini.smartlog 명령으로 설치할 수 있습니다. 설치 후 smartlog 명령을 실행하여 프로그램을 시작합니다. 로그 파일 경로를 인자로 전달하거나, tail -f app.log | smartlog과 같이 파이프를 통해 로그 데이터를 전달할 수 있습니다.
지원 환경 및 요구사항
smartlog은 Windows 10 이상에서 winget을 통해 설치 및 실행이 가능하며, 터미널이 VT 시퀀스를 지원해야 정상적으로 동작합니다. 소스 코드로부터 빌드하려면 Rust 1.74.0 이상과 Git이 필요합니다.
제한 사항 및 확인사항
smartlog은 로그 테일링에 특화되어 있어 일반 텍스트 편집 기능은 제공하지 않습니다. 터미널 환경에서만 동작하므로 GUI 기반 로그 뷰어가 필요한 경우 적합하지 않을 수 있습니다. JSON 자동 감지는 JSON 형식이 아닌 로그에는 적용되지 않습니다.
시스템 요구사항
Rust 1.74.0 이상이 필요하며, 소스 코드로부터 빌드할 경우 Git과 Cargo가 필수입니다. Windows에서는 winget을 통해 설치할 수 있으며, 터미널이 VT 시퀀스를 지원해야 합니다(Windows 10 이상 권장).


