[][src]Struct flexi_logger::LogSpecification

pub struct LogSpecification { /* fields omitted */ }

Immutable struct that defines which loglines are to be written, based on the module, the log level, and the text.

The loglevel specification via string (relevant for methods parse() and 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_a additionally debug messages, and mod_x::mod_y is 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.

    • foo
    • foo::bar
    • foobaz (!)
    • 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

impl LogSpecification[src]

#[must_use]pub fn enabled(&self, level: Level, writing_module: &str) -> bool[src]

Returns true if messages on the specified level from the writing module should be written

#[must_use]pub fn off() -> Self[src]

Returns a LogSpecification where all traces are switched off.

pub fn parse(spec: &str) -> Result<Self, FlexiLoggerError>[src]

Returns a log specification from a String.

Errors

FlexiLoggerError::Parse if the input is malformed.

pub fn env() -> Result<Self, FlexiLoggerError>[src]

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.

pub fn env_or_parse<S: AsRef<str>>(
    given_spec: S
) -> Result<Self, FlexiLoggerError>
[src]

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.

pub fn from_toml(s: &str) -> Result<Self, FlexiLoggerError>[src]

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.

pub fn to_toml(&self, w: &mut dyn Write) -> Result<(), FlexiLoggerError>[src]

Serializes itself in toml format.

This method is only avaible with feature specfile.

Errors

FlexiLoggerError::Io if writing fails.

#[must_use]pub fn default(level_filter: LevelFilter) -> LogSpecBuilder[src]

Creates a LogSpecBuilder, setting the default log level.

#[must_use]pub fn module_filters(&self) -> &Vec<ModuleFilter>[src]

Provides a reference to the module filters.

#[must_use]pub fn text_filter(&self) -> Option<&Regex>[src]

Provides a reference to the text filter.

This method is only avaible with feature textfilter, which is a default feature.

Trait Implementations

impl Clone for LogSpecification[src]

impl Debug for LogSpecification[src]

impl Default for LogSpecification[src]

Auto Trait Implementations

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.