Rust日志如何在Debian配置
导读:在 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
