pub struct LogSpecification { /* private fields */ }Expand description
Immutable struct that defines which loglines are to be written, based on the module, the log level, and the text.
Providing the loglevel specification via String
(LogSpecification::parse and LogSpecification::env)
works essentially like with env_logger,
but we are a bit more tolerant with spaces. Its functionality can be
described with some Backus-Naur-form:
<log_level_spec> ::= single_log_level_spec[{,single_log_level_spec}][/<text_filter>]
<single_log_level_spec> ::= <path_to_module>|<log_level>|<path_to_module>=<log_level>
<text_filter> ::= <regex>-
Examples:
"info": all logs with info, warn, or error level are written"crate1": all logs of this crate are written, but nothing else"warn, crate2::mod_a=debug, mod_x::mod_y=trace": all crates log warnings and errors,mod_aadditionally debug messages, andmod_x::mod_yis fully traced
-
If you just specify the module, without
log_level, all levels will be traced for this module. -
If you just specify a log level, this will be applied as default to all modules without explicit log level assigment. (You see that for modules named error, warn, info, debug or trace, it is necessary to specify their loglevel explicitly).
-
The module names are compared as Strings, with the side effect that a specified module filter affects all modules whose name starts with this String.
Example:"foo"affects e.g.foofoo::barfoobaz(!)foobaz::bar(!)
The optional text filter is applied for all modules.
Note that external module names are to be specified like in "extern crate ...", i.e.,
for crates with a dash in their name this means: the dash is to be replaced with
the underscore (e.g. karl_heinz, not karl-heinz).
See
https://github.com/rust-lang/rfcs/pull/940/files
for an explanation of the different naming conventions in Cargo (packages allow hyphen) and
rustc (“extern crate” does not allow hyphens).
Implementations§
Source§impl LogSpecification
impl LogSpecification
Sourcepub fn off() -> LogSpecification
pub fn off() -> LogSpecification
Returns a LogSpecification where all log output is switched off.
Sourcepub fn info() -> LogSpecification
pub fn info() -> LogSpecification
Returns a LogSpecification where the global tracelevel is set to info.
Sourcepub fn parse<S>(spec: S) -> Result<LogSpecification, FlexiLoggerError>
pub fn parse<S>(spec: S) -> Result<LogSpecification, FlexiLoggerError>
Returns a log specification from a String.
§Errors
FlexiLoggerError::Parse if the input is malformed.
Sourcepub fn env() -> Result<LogSpecification, FlexiLoggerError>
pub fn env() -> Result<LogSpecification, FlexiLoggerError>
Returns a log specification based on the value of the environment variable RUST_LOG,
or an empty one.
§Errors
FlexiLoggerError::Parse if the input is malformed.
Sourcepub fn env_or_parse<S>(
given_spec: S,
) -> Result<LogSpecification, FlexiLoggerError>
pub fn env_or_parse<S>( given_spec: S, ) -> Result<LogSpecification, FlexiLoggerError>
Returns a log specification based on the value of the environment variable RUST_LOG,
if it exists and can be parsed, or on the given String.
§Errors
FlexiLoggerError::Parse if the given spec is malformed.
Sourcepub fn builder() -> LogSpecBuilder
pub fn builder() -> LogSpecBuilder
Creates a LogSpecBuilder, which allows building a log spec programmatically.
Sourcepub fn from_toml<S>(s: S) -> Result<LogSpecification, FlexiLoggerError>
pub fn from_toml<S>(s: S) -> Result<LogSpecification, FlexiLoggerError>
Reads a log specification from an appropriate toml document.
This method is only avaible with feature specfile.
§Errors
FlexiLoggerError::Parse if the input is malformed.
Sourcepub fn to_toml(&self, w: &mut dyn Write) -> Result<(), FlexiLoggerError>
pub fn to_toml(&self, w: &mut dyn Write) -> Result<(), FlexiLoggerError>
Serializes itself in toml format.
This method is only avaible with feature specfile.
§Errors
FlexiLoggerError::SpecfileIo if writing fails.
Sourcepub fn enabled(&self, level: Level, writing_module: &str) -> bool
pub fn enabled(&self, level: Level, writing_module: &str) -> bool
Returns true if messages on the specified level from the writing module should be written.
Sourcepub fn module_filters(&self) -> &Vec<ModuleFilter>
pub fn module_filters(&self) -> &Vec<ModuleFilter>
Provides a reference to the module filters.
Sourcepub fn text_filter(&self) -> Option<&Regex>
pub fn text_filter(&self) -> Option<&Regex>
Provides a reference to the text filter.
This method is only avaible if the default feature textfilter is not switched off.
Trait Implementations§
Source§impl Clone for LogSpecification
impl Clone for LogSpecification
Source§fn clone(&self) -> LogSpecification
fn clone(&self) -> LogSpecification
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for LogSpecification
impl Debug for LogSpecification
Source§impl Default for LogSpecification
impl Default for LogSpecification
Source§fn default() -> LogSpecification
fn default() -> LogSpecification
Source§impl ToString for LogSpecification
impl ToString for LogSpecification
Source§impl TryFrom<&String> for LogSpecification
impl TryFrom<&String> for LogSpecification
Source§type Error = FlexiLoggerError
type Error = FlexiLoggerError
Source§fn try_from(
value: &String,
) -> Result<LogSpecification, <LogSpecification as TryFrom<&String>>::Error>
fn try_from( value: &String, ) -> Result<LogSpecification, <LogSpecification as TryFrom<&String>>::Error>
Source§impl TryFrom<&str> for LogSpecification
impl TryFrom<&str> for LogSpecification
Source§type Error = FlexiLoggerError
type Error = FlexiLoggerError
Source§fn try_from(
value: &str,
) -> Result<LogSpecification, <LogSpecification as TryFrom<&str>>::Error>
fn try_from( value: &str, ) -> Result<LogSpecification, <LogSpecification as TryFrom<&str>>::Error>
Auto Trait Implementations§
impl Freeze for LogSpecification
impl RefUnwindSafe for LogSpecification
impl Send for LogSpecification
impl Sync for LogSpecification
impl Unpin for LogSpecification
impl UnsafeUnpin for LogSpecification
impl UnwindSafe for LogSpecification
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<A> DynCastExt for A
impl<A> DynCastExt for A
Source§fn dyn_cast<T>(
self,
) -> Result<<A as DynCastExtHelper<T>>::Target, <A as DynCastExtHelper<T>>::Source>where
A: DynCastExtHelper<T>,
T: ?Sized,
fn dyn_cast<T>(
self,
) -> Result<<A as DynCastExtHelper<T>>::Target, <A as DynCastExtHelper<T>>::Source>where
A: DynCastExtHelper<T>,
T: ?Sized,
Source§fn dyn_upcast<T>(self) -> <A as DynCastExtAdvHelper<T, T>>::Target
fn dyn_upcast<T>(self) -> <A as DynCastExtAdvHelper<T, T>>::Target
Source§fn dyn_cast_adv<F, T>(
self,
) -> Result<<A as DynCastExtAdvHelper<F, T>>::Target, <A as DynCastExtAdvHelper<F, T>>::Source>
fn dyn_cast_adv<F, T>( self, ) -> Result<<A as DynCastExtAdvHelper<F, T>>::Target, <A as DynCastExtAdvHelper<F, T>>::Source>
Source§fn dyn_cast_with_config<C>(
self,
) -> Result<<A as DynCastExtAdvHelper<<C as DynCastConfig>::Source, <C as DynCastConfig>::Target>>::Target, <A as DynCastExtAdvHelper<<C as DynCastConfig>::Source, <C as DynCastConfig>::Target>>::Source>where
C: DynCastConfig,
A: DynCastExtAdvHelper<<C as DynCastConfig>::Source, <C as DynCastConfig>::Target>,
fn dyn_cast_with_config<C>(
self,
) -> Result<<A as DynCastExtAdvHelper<<C as DynCastConfig>::Source, <C as DynCastConfig>::Target>>::Target, <A as DynCastExtAdvHelper<<C as DynCastConfig>::Source, <C as DynCastConfig>::Target>>::Source>where
C: DynCastConfig,
A: DynCastExtAdvHelper<<C as DynCastConfig>::Source, <C as DynCastConfig>::Target>,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more