loggur

Crates.iologgur
lib.rsloggur
version
sourcesrc
created_at2025-04-12 01:31:47.769483+00
updated_at2025-04-12 01:31:47.769483+00
description로깅 크레이트
homepage
repository
max_upload_size
id1630553
Cargo.toml error:TOML parse error at line 18, column 1 | 18 | autolib = false | ^^^^^^^ unknown field `autolib`, expected one of `name`, `version`, `edition`, `authors`, `description`, `readme`, `license`, `repository`, `homepage`, `documentation`, `build`, `resolver`, `links`, `default-run`, `default_dash_run`, `rust-version`, `rust_dash_version`, `rust_version`, `license-file`, `license_dash_file`, `license_file`, `licenseFile`, `license_capital_file`, `forced-target`, `forced_dash_target`, `autobins`, `autotests`, `autoexamples`, `autobenches`, `publish`, `metadata`, `keywords`, `categories`, `exclude`, `include`
size0
Jeonghoon Bang (RedBe-an)

documentation

https://docs.rs/loggur

README

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

Commit count: 0

cargo fmt