1 unstable release
Uses new Rust 2024
| 0.1.0 | Apr 12, 2025 |
|---|
#1539 in Debugging
1MB
408 lines
Contains (rust library, 1MB) libloggur.rlib
Loggur
시각적으로 풍부한 Rust 로깅 크레이트입니다. tracing 생태계와 통합되어 구조화된 로깅과 진행 상태 표시 기능을 제공합니다.
특징
- tracing 생태계와 완벽하게 통합
- tracing-indicatif를 활용한 자동 진행 상태 표시
- 다양한 로그 레벨 지원 (TRACE, DEBUG, INFO, WARN, ERROR)
- 컬러 및 스타일링된 로그 출력
- 이모지 지원
- 파일 로깅 지원
- 구조화된 로깅 (필드 기반)
- span 기반 컨텍스트 추적
- 시간 측정 및 표시 기능
설치 방법
Cargo.toml 파일에 다음 의존성을 추가하세요:
[dependencies]
loggur = "0.1.0"
또는 cargo 명령어를 사용하세요:
cargo add loggur
기본 사용법
로거 초기화 및 기본 로깅
use loggur::{Loggur, Level, info, debug, warn, error};
// 기본 로거 초기화
Loggur::init(Level::DEBUG);
// 다양한 로그 레벨 사용
debug!("디버그 메시지입니다");
info!("정보 메시지입니다");
warn!("경고 메시지입니다");
error!("오류 메시지입니다");
// 구조화된 로깅
info!(user = "ferris", action = "login", "사용자가 로그인했습니다");
파일 로깅
use loggur::{Loggur, Level, info, error};
// 파일 로깅 초기화
let _guard = Loggur::init_with_file(Level::INFO, "./app.log");
// 콘솔과 파일 모두에 로깅
info!("이 메시지는 콘솔과 파일 모두에 기록됩니다");
error!("이 오류는 콘솔과 파일 모두에 기록됩니다");
span 및 진행 상태 표시
use loggur::{Loggur, Level, info, progress_span, progress_inc};
// 진행 상태 표시 기능 초기화
Loggur::init_with_progress(Level::INFO);
// 진행 상태 표시 span 생성
let total_items = 100;
let span = progress_span!("작업 진행", total_items);
let _enter = span.enter();
for i in 0..total_items {
// 작업 수행
// ...
// 진행 상태 업데이트
progress_inc!(1);
if i % 10 == 0 {
info!("진행 중: {}/{}", i, total_items);
}
}
시간 측정
use loggur::{Loggur, Level, info, time_it};
// 로거 초기화
Loggur::init(Level::INFO);
// 코드 블록 실행 시간 측정
time_it!("복잡한 계산", {
// 복잡한 계산 수행
// ...
});
고급 사용법
모든 기능 통합 초기화
use loggur::{Loggur, Level};
// 콘솔 로깅, 파일 로깅, 진행 상태 표시 모두 초기화
let _guard = Loggur::init_full(Level::DEBUG, Some("./app.log"));
환경 변수를 통한 로그 레벨 제어
RUST_LOG 환경 변수를 설정하여 로그 레벨을 제어할 수 있습니다:
# 전체 로그 레벨 설정
RUST_LOG=info cargo run
# 특정 모듈의 로그 레벨 설정
RUST_LOG=debug,my_module=trace cargo run
예제
더 많은 예제는 examples 디렉토리에서 확인할 수 있습니다:
- basic_usage.rs - 기본 로깅 예제
- file_logging.rs - 파일 로깅 예제
- progress_bars.rs - 진행 상태 표시 예제
- tracing_indicatif_demo.rs - tracing-indicatif 통합 예제
라이센스
MIT
Dependencies
~14–28MB
~301K SLoC