1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
//! Adds support for automatic breadcrumb capturing from logs with `env_logger`. //! //! **Feature:** `with_env_logger` (*enabled by default*) //! //! # Configuration //! //! In the most trivial version you call this crate's init function instead of the one //! from `env_logger` and pass `None` as logger: //! //! ```no_run //! # extern crate sentry; //! sentry::integrations::env_logger::init(None, Default::default()); //! ``` //! //! This parses the default `RUST_LOG` environment variable and configures both `env_logger` //! and this crate appropriately. If you want to create your own logger you can forward it //! accordingly: //! //! ```no_run //! # extern crate sentry; //! # extern crate pretty_env_logger; //! let mut log_builder = pretty_env_logger::formatted_builder(); //! log_builder.parse("info,foo=debug"); //! sentry::integrations::env_logger::init(Some(log_builder.build()), Default::default()); //! ``` use crate::integrations::log::{self as sentry_log, LoggerOptions}; /// Initializes the environment logger. /// /// If a logger is given then it is used, otherwise a new logger is created in the same /// way as `env_logger::init` does normally. The `global_filter` on the options is set /// to the filter of the logger. pub fn init(logger: Option<env_logger::Logger>, mut options: LoggerOptions) { let logger = logger.unwrap_or_else(|| env_logger::Builder::from_env(env_logger::Env::default()).build()); let filter = logger.filter(); if options.global_filter.is_none() { options.global_filter = Some(filter); } sentry_log::init(Some(Box::new(logger)), options); }