yan-log 0.1.0

轻量级日志库
Documentation
# yan-log


yan-log是一个用Rust语言开发的轻量级日志库,采用异步输出日志,支持日志级别、按日期时间拆分、按文件大小拆分、自动删除旧文件,建议搭配
log 日志门面使用,
默认情况在 release 模式不会打印日志到控制台,可通过开启 stdout 启动 release 模式的控制台日志打印

## Features(特性)


stdout: 开启 stdout 特性时,release 模式,会和 dev 模式相同打印日志到控制台

## 用法


### 搭配 log 日志门面库使用示例


```rust
fn main() {
    yan_log::Logger::init("logs", yan_log::LogLevel::Debug)
        .set_file_pattern(r#"app_%Y-%m-%d %H:%M:%S-%i.log"#, yan_log::LoggerFormatTimeDivisionRule::Day)
        .start()
        .unwrap();

    // 搭配 log 日志门店使用输出日志
    log::info!("应用已启动");

    // shutdown函数用于程序停止时优雅关闭异步日志线程,将日志完全写入文件,避免日志丢失
    yan_log::Logger::shutdown();
}
```
### 最小运行示例


```rust
const LOG:yan_log::Logger = yan_log::Logger::new(module_path!(), yan_log::LogLevel::Debug);
fn main() {
    yan_log::Logger::init("logs", yan_log::LogLevel::Debug)
        .set_file_pattern(r#"app_%Y-%m-%d %H:%M:%S-%i.log"#, yan_log::LoggerFormatTimeDivisionRule::Day)
        .start()
        .unwrap();

    // 直接输出日志,不使用 log 日志门面
    // 输出的日志级别会优先采用 LOG 变量指定的级别,而不会采用 init 函数指定的日志级别
    log.debug("Application started");

    // shutdown函数用于程序停止时优雅关闭异步日志线程,将日志完全写入文件,避免日志丢失
    yan_log::Logger::shutdown();
}

```
### 完整使用示例


```rust
fn main() {
    // 初始化全局日志系统
    yan_log::Logger::init("logs", yan_log::LogLevel::Debug)
        // 设置日志文件命名模式和时间分割规则
        .set_file_pattern("app_%Y-%m-%d_%H:%M:%S-%i.log", yan_log::LoggerFormatTimeDivisionRule::Day)
        // 设置日志文件大小触发拆分文件策略
        .set_max_file_triggering_policy(104857600)
        // 设置最大保留日志文件数量
        .set_max_retained_files(100)
        // 设置日志消息通道的缓冲区大小
        .set_bound(200)
        // 启动日志系统
        .start()
        .unwrap();

    // 记录跟踪日志
    log::trace!("Application started");
    // 记录调试日志
    log::debug!("Application started");
    // 记录信息日志
    log::info!("Application started");
    // 记录警告日志
    log::warn!("Application started");
    // 记录错误日志
    log::error!("Application started");

    // shutdown函数用于程序停止时优雅关闭异步日志线程,将日志完全写入文件,避免日志丢失
    yan_log::Logger::shutdown();
}

```