Skip to content

Commit

Permalink
feat: allow log level customization (launchbadge#1371)
Browse files Browse the repository at this point in the history
  • Loading branch information
EliseZeroTwo authored Sep 1, 2021
1 parent 335eed4 commit 719d800
Show file tree
Hide file tree
Showing 4 changed files with 59 additions and 8 deletions.
16 changes: 8 additions & 8 deletions sqlx-core/src/connection.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ use crate::database::{Database, HasStatementCache};
use crate::error::Error;
use crate::transaction::Transaction;
use futures_core::future::BoxFuture;
use log::LevelFilter;
pub use log::LevelFilter;
use std::fmt::Debug;
use std::str::FromStr;
use std::time::Duration;
Expand Down Expand Up @@ -126,27 +126,27 @@ pub trait Connection: Send {
}

#[derive(Clone, Debug)]
pub(crate) struct LogSettings {
pub(crate) statements_level: LevelFilter,
pub(crate) slow_statements_level: LevelFilter,
pub(crate) slow_statements_duration: Duration,
pub struct LogSettings {
pub statements_level: LevelFilter,
pub slow_statements_level: LevelFilter,
pub slow_statements_duration: Duration,
}

impl Default for LogSettings {
fn default() -> Self {
LogSettings {
statements_level: LevelFilter::Info,
statements_level: LevelFilter::Debug,
slow_statements_level: LevelFilter::Warn,
slow_statements_duration: Duration::from_secs(1),
}
}
}

impl LogSettings {
pub(crate) fn log_statements(&mut self, level: LevelFilter) {
pub fn log_statements(&mut self, level: LevelFilter) {
self.statements_level = level;
}
pub(crate) fn log_slow_statements(&mut self, level: LevelFilter, duration: Duration) {
pub fn log_slow_statements(&mut self, level: LevelFilter, duration: Duration) {
self.slow_statements_level = level;
self.slow_statements_duration = duration;
}
Expand Down
17 changes: 17 additions & 0 deletions sqlx-core/src/mysql/options/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -212,4 +212,21 @@ impl MySqlConnectOptions {
self.collation = Some(collation.to_owned());
self
}

/// Sets the log settings.
///
/// # Example
///
/// ```rust
/// # use sqlx_core::mysql::MySqlConnectOptions;
/// let options = MySqlConnectOptions::new()
/// .log_settings(sqlx_core::connection::LogSettings {
/// statements_level: sqlx_core::connection::LevelFilter::Info,
/// ..Default::default()
/// });
/// ```
pub fn log_settings(mut self, log_settings: LogSettings) -> Self {
self.log_settings = log_settings;
self
}
}
17 changes: 17 additions & 0 deletions sqlx-core/src/postgres/options/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -319,6 +319,23 @@ impl PgConnectOptions {
self
}

/// Sets the log settings.
///
/// # Example
///
/// ```rust
/// # use sqlx_core::postgres::PgConnectOptions;
/// let options = PgConnectOptions::new()
/// .log_settings(sqlx_core::connection::LogSettings {
/// statements_level: sqlx_core::connection::LevelFilter::Info,
/// ..Default::default()
/// });
/// ```
pub fn log_settings(mut self, log_settings: LogSettings) -> Self {
self.log_settings = log_settings;
self
}

/// We try using a socket if hostname starts with `/` or if socket parameter
/// is specified.
pub(crate) fn fetch_socket(&self) -> Option<String> {
Expand Down
17 changes: 17 additions & 0 deletions sqlx-core/src/sqlite/options/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -190,4 +190,21 @@ impl SqliteConnectOptions {
self.page_size = page_size;
self
}

/// Sets the log settings.
///
/// # Example
///
/// ```rust
/// # use sqlx_core::sqlite::SqliteConnectOptions;
/// let options = SqliteConnectOptions::new()
/// .log_settings(sqlx_core::connection::LogSettings {
/// statements_level: sqlx_core::connection::LevelFilter::Info,
/// ..Default::default()
/// });
/// ```
pub fn log_settings(mut self, log_settings: LogSettings) -> Self {
self.log_settings = log_settings;
self
}
}

0 comments on commit 719d800

Please sign in to comment.