Skip to content

Commit 5262168

Browse files
author
Jonathan Woollett-Light
committed
feat: Replace log with tracing
Replaces `log` with `tracing` and the custom logger with `tracing_subscriber::Fmt`. Adding support for re-configuring the logger at run-time and removing the old logger format. Signed-off-by: Jonathan Woollett-Light <jcawl@amazon.co.uk>
1 parent 2a13579 commit 5262168

File tree

25 files changed

+663
-2138
lines changed

25 files changed

+663
-2138
lines changed

Cargo.lock

+149-22
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/api_server/Cargo.toml

+2
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@ mmds = { path = "../mmds" }
2121
seccompiler = { path = "../seccompiler" }
2222
utils = { path = "../utils" }
2323
vmm = { path = "../vmm" }
24+
tracing = "0.1.37"
2425

2526
[dev-dependencies]
2627
libc = "0.2.117"
28+
log = "0.4.19"

src/api_server/src/parsed_request.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
use std::fmt::Debug;
55

6-
use logger::{error, info, log_enabled, Level};
6+
use logger::{error, info, Level};
77
use micro_http::{Body, Method, Request, Response, StatusCode, Version};
88
use serde::ser::Serialize;
99
use serde_json::Value;
@@ -232,7 +232,7 @@ fn describe(method: Method, path: &str, body: Option<&Body>) -> String {
232232
("/cpu-config", Some(payload_value)) => {
233233
// If the log level is at Debug or higher, include the CPU template in
234234
// the log line.
235-
if log_enabled!(Level::Debug) {
235+
if tracing::enabled!(Level::DEBUG) {
236236
describe_with_body(method, path, payload_value)
237237
} else {
238238
format!(

src/api_server/src/request/logger.rs

+9-9
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ pub(crate) fn parse_put_logger(body: &Body) -> Result<ParsedRequest, Error> {
2222
mod tests {
2323
use std::path::PathBuf;
2424

25-
use vmm::vmm_config::logger::LoggerLevel;
25+
use vmm::vmm_config::logger::Level;
2626

2727
use super::*;
2828
use crate::parsed_request::tests::vmm_action_from_request;
@@ -37,10 +37,10 @@ mod tests {
3737
}"#;
3838

3939
let mut expected_cfg = LoggerConfig {
40-
log_path: PathBuf::from("log"),
41-
level: LoggerLevel::Warning,
42-
show_level: false,
43-
show_log_origin: false,
40+
log_path: Some(PathBuf::from("log")),
41+
level: Some(Level::Warn),
42+
show_level: Some(false),
43+
show_log_origin: Some(false),
4444
};
4545
match vmm_action_from_request(parse_put_logger(&Body::new(body)).unwrap()) {
4646
VmmAction::ConfigureLogger(cfg) => assert_eq!(cfg, expected_cfg),
@@ -55,10 +55,10 @@ mod tests {
5555
}"#;
5656

5757
expected_cfg = LoggerConfig {
58-
log_path: PathBuf::from("log"),
59-
level: LoggerLevel::Debug,
60-
show_level: false,
61-
show_log_origin: false,
58+
log_path: Some(PathBuf::from("log")),
59+
level: Some(Level::Debug),
60+
show_level: Some(false),
61+
show_log_origin: Some(false),
6262
};
6363
match vmm_action_from_request(parse_put_logger(&Body::new(body)).unwrap()) {
6464
VmmAction::ConfigureLogger(cfg) => assert_eq!(cfg, expected_cfg),

src/cpu-template-helper/Cargo.toml

+1
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ libc = "0.2.147"
1717
serde = { version = "1.0.183", features = ["derive"] }
1818
serde_json = "1.0.104"
1919
thiserror = "1.0.44"
20+
tracing = "0.1.37"
2021

2122
vmm = { path = "../vmm" }
2223

src/dumbo/Cargo.toml

+1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ bench = false
1111
[dependencies]
1212
bitflags = "1.3.2"
1313
derive_more = { version = "0.99.17", default-features = false, features = ["from"] }
14+
tracing = "0.1.37"
1415

1516
logger = { path = "../logger" }
1617
micro_http = { git = "https://github.com/firecracker-microvm/micro-http", rev = "4b18a04" }

src/firecracker/Cargo.toml

+3
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,12 @@ bench = false
1515
[dependencies]
1616
event-manager = "0.3.0"
1717
libc = "0.2.147"
18+
log = "0.4.19"
1819
serde_json = "1.0.104"
1920
thiserror = "1.0.44"
2021
timerfd = "1.5.0"
22+
tracing = "0.1.37"
23+
tracing-subscriber = "0.3.17"
2124

2225
api_server = { path = "../api_server" }
2326
logger = { path = "../logger" }

src/firecracker/src/api_server_adapter.rs

+2
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,7 @@ pub(crate) fn run_with_api(
142142
api_payload_limit: usize,
143143
mmds_size_limit: usize,
144144
metadata_json: Option<&str>,
145+
logger_handles: vmm::vmm_config::logger::LoggerHandles,
145146
) -> Result<(), ApiServerError> {
146147
// FD to notify of API events. This is a blocking eventfd by design.
147148
// It is used in the config/pre-boot loop which is a simple blocking loop
@@ -211,6 +212,7 @@ pub(crate) fn run_with_api(
211212
boot_timer_enabled,
212213
mmds_size_limit,
213214
metadata_json,
215+
logger_handles,
214216
)
215217
.map_err(ApiServerError::MicroVMStoppedWithError),
216218
};

0 commit comments

Comments
 (0)