1 unstable release
Uses new Rust 2024
new 0.1.0 | Apr 12, 2025 |
---|
#416 in Debugging
68 downloads per month
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
~11–20MB
~251K SLoC