首页主机资讯Rust日志如何在Debian配置

Rust日志如何在Debian配置

时间2025-12-01 12:11:04发布访客分类主机资讯浏览370
导读:在 Debian 上配置 Rust 日志的完整实践 一 最简方案 env_logger 输出到控制台 在项目的 Cargo.toml 添加依赖:[dependencies] log = "0.4" env_logger = "0.10"...

在 Debian 上配置 Rust 日志的完整实践

一 最简方案 env_logger 输出到控制台

  • 在项目的 Cargo.toml 添加依赖:
    [dependencies]
    log = "0.4"
    env_logger = "0.10"
    
  • main.rs 初始化并使用日志:
    use log::{
    info, error}
        ;
    
    
    fn main() {
        
        // 读取环境变量 RUST_LOG,未设置时默认 info
        env_logger::Builder::from_env(
            env_logger::Env::default().default_filter_or("info")
        ).init();
        
    
        info!("应用启动");
        
        error!("发生错误");
    
    }
    
    
  • 本地运行控制级别(开发/调试常用):
    RUST_LOG=debug cargo run
    
  • 说明:log 是日志门面,env_logger 是具体实现;通过 RUST_LOG 环境变量即可按模块与级别过滤,例如:RUST_LOG=info,mycrate=debug。该方案适合绝大多数命令行与开发场景。

二 作为 systemd 服务运行并查看日志

  • 构建发布版本:
    cargo build --release
    
  • 创建服务文件 /etc/systemd/system/myapp.service
    [Unit]
    Description=My Rust App
    After=network.target
    
    [Service]
    User=www-data
    Group=www-data
    ExecStart=/path/to/target/release/myapp
    Restart=always
    Environment=RUST_LOG=info
    
    [Install]
    WantedBy=multi-user.target
    
  • 启用与查看日志:
    sudo systemctl daemon-reload
    sudo systemctl enable --now myapp.service
    sudo journalctl -u myapp.service -f
    
  • 提示:将 Environment=RUST_LOG=info 写入服务单元即可固化日志级别;如需按模块调优,可改为如 RUST_LOG=info,mycrate=debug。使用 journalctl 可集中查看 stdout/stderr 与 systemd 附加日志。

三 写入文件并按天滚动 log4rs

  • Cargo.toml 添加依赖:
    [dependencies]
    log = "0.4"
    log4rs = "1.0"
    
  • 在项目根目录创建 log4rs.yaml
    refresh_rate: 30 seconds
    
    appenders:
      stdout:
        kind: console
      file:
        kind: rolling_file
        path: "log/app.log"
        encoder:
          pattern: "{
    d}
     - {
    l}
     - {
    m}
    {
    n}
        "
        roller:
          kind: time
          pattern: "%Y-%m-%d"
          count: 7
    
    root:
      level: info
      appenders:
        - stdout
        - file
    
  • main.rs 初始化:
    use log::info;
        
    use log4rs;
    
    
    fn main() {
        
        log4rs::init_file("log4rs.yaml", Default::default()).unwrap();
        
        info!("服务已启动");
    
    }
        
    
  • 运行前确保存在 log/ 目录(或在代码中创建),该配置会按天滚动并保留最近 7 天日志,同时输出到控制台与文件,便于本地与服务器统一运维。

四 进阶选择与其他日志库

  • 若需更灵活的按模块、多目标、过滤器与 JSON 格式等能力,可考虑 log4rs(支持 YAML 配置、自动重载、滚动策略等),或 flexi_logger(运行期切换、缓冲与多目标等)。这些库在 Debian 环境下的使用方式与在其他 Linux 发行版一致,主要区别在于部署与运维(如 systemd、日志目录权限)。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: Rust日志如何在Debian配置
本文地址: https://pptw.com/jishu/759963.html
Ubuntu Tomcat安全如何保障 Debian如何配置Rust工具链

游客 回复需填写必要信息