日志
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))