rust 日志记录与跟踪

日志

Cargo.toml

[dependencies]
warp = "0.3.7"
tokio = {version = "1.39.3", features = ["full"]}
serde = { version = "1.0.208", features = ["derive"] }
serde_json = "1.0.125"
#log = "0.4"
#env_logger = "0.11"
#log4rs = "1.3.0"
tracing = {version = "0.1.40", features = ["log"]}
tracing-subscriber = {version = "0.3.18", features = ["env-filter"]}
uuid = {version = "0.8", features = ["v4"]}

日志记录

env_logger

log = "0.4"
env_logger = "0.11"
#log4rs = "1.3.0"
$ RUST_LOG=info cargo run -p wrap_demo01 --bin wrap_demo01
$ RUST_LOG=debug cargo run -p wrap_demo01 --bin wrap_demo01

log4rs

log = "0.4"
#env_logger = "0.11"
log4rs = "1.3.0"

记录 HTTP 请求

  • 输出到控制台
  • 输出到文件

log4rs.yaml 配置

refresh_rate: 30 seconds
appenders:
   stdout:
     kind: console
     encoder:
       kind: json
   file:
     kind: file
     path: "stderr.log"
     encoder:
       kind : json
       #pattern: "{d} - {m}{n}"

root:
  level: info
  appenders:
    - stdout
    - file

log4rs::init_file("log4rs.yaml", Default::default()).unwrap();
let log = warp::log::custom(|info| {
   
        eprintln!(
            "{} {} {} {:?} from {} with {:?}",
            info.method(),
            info.path(),
            info.status(),
            info.elapsed(),
            info.remote_addr().unwrap(),
            info.request_headers()
        )
    });
let routes = get_questions
        .or(add_question)
        .or(update_question)
        .or(delete_question)
        .or(add_answer)
        .with(cors)
        .with(log)
        .recover(error::return_error);
warp::serve(routes).run(([127, 0, 0, 1], 3030))
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值