From 8305040d02bb0e7f4141f9c184e0e2d3fbf61022 Mon Sep 17 00:00:00 2001 From: Luisa Vasquez Gomez Date: Thu, 30 Jan 2025 22:10:00 -0800 Subject: [PATCH] justknobs: migrate to tracing_slog_compat Summary: We are migrating from `slog` to `tracing`. Modify the `rust/shed/secure_utils` crate to accept `tracing_slog_compat` instances of `Logger`, as well as regular `slog::Logger` instances. Differential Revision: D68857207 fbshipit-source-id: 58ce80f0855f7f54cc2bcaa6f9a54d92c2a38781 --- shed/justknobs_stub/Cargo.toml | 1 + shed/justknobs_stub/src/cached_config.rs | 33 +++++++++++++++++++----- 2 files changed, 27 insertions(+), 7 deletions(-) diff --git a/shed/justknobs_stub/Cargo.toml b/shed/justknobs_stub/Cargo.toml index 2b09902e5..24ce6de8c 100644 --- a/shed/justknobs_stub/Cargo.toml +++ b/shed/justknobs_stub/Cargo.toml @@ -24,6 +24,7 @@ serde = { version = "1.0.185", features = ["derive", "rc"] } serde_json = { version = "1.0.132", features = ["float_roundtrip", "unbounded_depth"] } slog = { version = "2.7", features = ["max_level_trace", "nested-values"] } tokio = { version = "1.41.0", features = ["full", "test-util", "tracing"] } +tracing_slog_compat = { version = "0.1.0", path = "../tracing_slog_compat" } [dev-dependencies] fbinit = { version = "0.2.0", path = "../fbinit" } diff --git a/shed/justknobs_stub/src/cached_config.rs b/shed/justknobs_stub/src/cached_config.rs index ea6624632..6464eb118 100644 --- a/shed/justknobs_stub/src/cached_config.rs +++ b/shed/justknobs_stub/src/cached_config.rs @@ -20,11 +20,11 @@ use cached_config::ConfigHandle; use just_knobs_struct::JustKnobs as JustKnobsStruct; use serde::Deserialize; use serde::Serialize; -use slog::debug; -use slog::error; -use slog::warn; -use slog::Logger; use tokio::runtime::Handle; +use tracing_slog_compat::debug; +use tracing_slog_compat::error; +use tracing_slog_compat::warn; +use tracing_slog_compat::Logger; use crate::JustKnobs; @@ -102,10 +102,11 @@ fn log_just_knobs(just_knobs: &JustKnobsStruct) -> String { } pub fn init_just_knobs_worker( - logger: Logger, + logger: impl IntoLogger, config_handle: ConfigHandle, runtime_handle: Handle, ) -> Result<()> { + let logger = logger.into_logger(); init_just_knobs(&logger, &config_handle)?; if JUST_KNOBS_WORKER_STATE .set(JustKnobsWorkerState { @@ -122,12 +123,13 @@ pub fn init_just_knobs_worker( } pub fn init_just_knobs( - logger: &Logger, + logger: &(impl IntoLogger + Clone), config_handle: &ConfigHandle, ) -> Result<()> { let just_knobs = config_handle.get(); + let logger = logger.clone(); debug!( - logger, + logger.into_logger(), "Initializing JustKnobs: {}", log_just_knobs(&just_knobs) ); @@ -181,6 +183,23 @@ fn update_just_knobs(new_just_knobs: Arc) -> Result<()> { Ok(()) } +#[doc(hidden)] +pub trait IntoLogger { + fn into_logger(self) -> tracing_slog_compat::Logger; +} + +impl IntoLogger for slog::Logger { + fn into_logger(self) -> tracing_slog_compat::Logger { + tracing_slog_compat::Logger::Slog(self) + } +} + +impl IntoLogger for tracing_slog_compat::Logger { + fn into_logger(self) -> tracing_slog_compat::Logger { + self + } +} + #[cfg(test)] mod test { use std::thread;