loggur 0.1.0

로깅 크레이트
Documentation
# Loggur

시각적으로 풍부한 Rust 로깅 크레이트입니다. tracing 생태계와 통합되어 구조화된 로깅과 진행 상태 표시 기능을 제공합니다.

## 특징

- [tracing]https://crates.io/crates/tracing 생태계와 완벽하게 통합
- [tracing-indicatif]https://crates.io/crates/tracing-indicatif를 활용한 자동 진행 상태 표시
- 다양한 로그 레벨 지원 (TRACE, DEBUG, INFO, WARN, ERROR)
- 컬러 및 스타일링된 로그 출력
- 이모지 지원
- 파일 로깅 지원
- 구조화된 로깅 (필드 기반)
- span 기반 컨텍스트 추적
- 시간 측정 및 표시 기능

## 설치 방법

`Cargo.toml` 파일에 다음 의존성을 추가하세요:

```toml
[dependencies]
loggur = "0.1.0"
```

또는 cargo 명령어를 사용하세요:

```bash
cargo add loggur
```

## 기본 사용법

### 로거 초기화 및 기본 로깅

```rust
use loggur::{Loggur, Level, info, debug, warn, error};

// 기본 로거 초기화
Loggur::init(Level::DEBUG);

// 다양한 로그 레벨 사용
debug!("디버그 메시지입니다");
info!("정보 메시지입니다");
warn!("경고 메시지입니다");
error!("오류 메시지입니다");

// 구조화된 로깅
info!(user = "ferris", action = "login", "사용자가 로그인했습니다");
```

### 파일 로깅

```rust
use loggur::{Loggur, Level, info, error};

// 파일 로깅 초기화
let _guard = Loggur::init_with_file(Level::INFO, "./app.log");

// 콘솔과 파일 모두에 로깅
info!("이 메시지는 콘솔과 파일 모두에 기록됩니다");
error!("이 오류는 콘솔과 파일 모두에 기록됩니다");
```

### span 및 진행 상태 표시

```rust
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);
    }
}
```

### 시간 측정

```rust
use loggur::{Loggur, Level, info, time_it};

// 로거 초기화
Loggur::init(Level::INFO);

// 코드 블록 실행 시간 측정
time_it!("복잡한 계산", {
    // 복잡한 계산 수행
    // ...
});
```

## 고급 사용법

### 모든 기능 통합 초기화

```rust
use loggur::{Loggur, Level};

// 콘솔 로깅, 파일 로깅, 진행 상태 표시 모두 초기화
let _guard = Loggur::init_full(Level::DEBUG, Some("./app.log"));
```

### 환경 변수를 통한 로그 레벨 제어

`RUST_LOG` 환경 변수를 설정하여 로그 레벨을 제어할 수 있습니다:

```bash
# 전체 로그 레벨 설정
RUST_LOG=info cargo run

# 특정 모듈의 로그 레벨 설정
RUST_LOG=debug,my_module=trace cargo run
```

## 예제

더 많은 예제는 [examples](https://github.com/username/loggur/tree/main/examples) 디렉토리에서 확인할 수 있습니다:

- [basic_usage.rs]https://github.com/username/loggur/blob/main/examples/basic_usage.rs - 기본 로깅 예제
- [file_logging.rs]https://github.com/username/loggur/blob/main/examples/file_logging.rs - 파일 로깅 예제
- [progress_bars.rs]https://github.com/username/loggur/blob/main/examples/progress_bars.rs - 진행 상태 표시 예제
- [tracing_indicatif_demo.rs]https://github.com/username/loggur/blob/main/examples/tracing_indicatif_demo.rs - tracing-indicatif 통합 예제

## 라이센스

MIT