diff --git a/contrib/db_pools/lib/src/pool.rs b/contrib/db_pools/lib/src/pool.rs index 6776b642..a1ecf0b9 100644 --- a/contrib/db_pools/lib/src/pool.rs +++ b/contrib/db_pools/lib/src/pool.rs @@ -188,6 +188,7 @@ mod deadpool_postgres { mod sqlx { use sqlx::ConnectOptions; use super::{Duration, Error, Config, Figment}; + use rocket::config::LogLevel; type Options = <::Connection as sqlx::Connection>::Options; @@ -210,9 +211,16 @@ mod sqlx { async fn init(figment: &Figment) -> Result { let config = figment.extract::()?; let mut opts = config.url.parse::>().map_err(Error::Init)?; - opts.disable_statement_logging(); specialize(&mut opts, &config); + opts.disable_statement_logging(); + if let Ok(level) = figment.extract_inner::(rocket::Config::LOG_LEVEL) { + if !matches!(level, LogLevel::Normal | LogLevel::Off) { + opts.log_statements(level.into()) + .log_slow_statements(level.into(), Duration::default()); + } + } + sqlx::pool::PoolOptions::new() .max_connections(config.max_connections as u32) .connect_timeout(Duration::from_secs(config.connect_timeout)) diff --git a/core/lib/src/log.rs b/core/lib/src/log.rs index 329db976..ab501fdb 100644 --- a/core/lib/src/log.rs +++ b/core/lib/src/log.rs @@ -79,7 +79,7 @@ impl log::Log for RocketLogger { let max = log::max_level(); let from = |path| record.module_path().map_or(false, |m| m.starts_with(path)); let debug_only = from("hyper") || from("rustls") || from("r2d2"); - if LogLevel::Debug.to_level_filter() > max && debug_only { + if log::LevelFilter::from(LogLevel::Debug) > max && debug_only { return; } @@ -153,7 +153,18 @@ pub(crate) fn init(config: &crate::Config) { Paint::disable(); } - log::set_max_level(config.log_level.to_level_filter()); + log::set_max_level(config.log_level.into()); + } +} + +impl From for log::LevelFilter { + fn from(level: LogLevel) -> Self { + match level { + LogLevel::Critical => log::LevelFilter::Warn, + LogLevel::Normal => log::LevelFilter::Info, + LogLevel::Debug => log::LevelFilter::Trace, + LogLevel::Off => log::LevelFilter::Off + } } } @@ -166,15 +177,6 @@ impl LogLevel { LogLevel::Off => "off", } } - - fn to_level_filter(self) -> log::LevelFilter { - match self { - LogLevel::Critical => log::LevelFilter::Warn, - LogLevel::Normal => log::LevelFilter::Info, - LogLevel::Debug => log::LevelFilter::Trace, - LogLevel::Off => log::LevelFilter::Off - } - } } impl FromStr for LogLevel {