1 unstable release

Uses new Rust 2024

new 0.1.0 Apr 12, 2025

#416 in Debugging

Download history 68/week @ 2025-04-07

68 downloads per month

MIT license

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 디렉토리에서 확인할 수 있습니다:

라이센스

MIT

Dependencies

~11–20MB
~251K SLoC