[][src]Struct gelf::Logger

pub struct Logger { /* fields omitted */ }

Logger for sending log-messages

A Logger instance can be either used as a standalone object to log directly to a log-server or it can be installed as a log-crate log-handler (with Logger::install).

By default all encountered errors will be silently ignored. If you want the logger to panic when an error occurs, you can change the behaviour with Logger::enable_panic_on_error.

Methods

impl Logger[src]

pub fn new(backend: Box<dyn Backend>) -> Result<Self>[src]

Construct a new Logger instance

The backend needs to be boxed for usage as a logger with the log-crate. This constructor tries to determine the local hostname (required by GELF) with the help of the hostname-crate. If you want to set a custom hostname check out the Logger::new_with_hostname constructor.

pub fn new_with_hostname(backend: Box<dyn Backend>, hostname: &str) -> Logger[src]

Construct a new Logger instance with predetermined hostname

The backend needs to be boxed for usage as a logger with the log-crate. It uses the passed hostname for the GELF host field

pub fn install<T: Into<LevelFilter>>(self, log_level: T) -> Result<()>[src]

Install a logger instance as a log-Logger

This method wraps log::set_logger as a convenience function as required by the log-crate. log_level defines the maximum log-level the logger should log.

Note that installing the logger consumes it. To uninstall you need to call log::shutdown_logger which returns the boxed, original Logger instance.

pub fn log_message(&self, msg: Message)[src]

Log a message via the logger's transport to a GELF server.

The logger will automatically add default_metadata fields to the message if missing in the passed Message.

pub fn hostname(&self) -> &String[src]

Return the hostname used for GELF's host-field

pub fn set_hostname<S: Into<String>>(&mut self, hostname: S) -> &mut Self[src]

Set the hostname used for GELF's host-field

pub fn default_metadata(&self) -> &HashMap<String, String>[src]

Return all default metadata

pub fn set_default_metadata<S, T>(&mut self, key: S, value: T) -> &mut Self where
    S: Into<String>,
    T: Into<String>, 
[src]

Set a default metadata field

Every logged Message is checked for every default_metadata field. If it contains an entry with the key, the default is ignored. But if there is no additional information present, the default is added to the message.

This can be used for example to add a facility to every message:

logger.set_default_metadata(String::from("facility"), String::from("my_awesome_rust_service"));

logger.log_message(Message::new(String::from("This is important information")));
// -> The message will contain an additional field "_facility" with the value "my_awesome_rust_service"

pub fn panic_on_error(&self) -> bool[src]

Return a flag whether the logger panics when it encounters an error

pub fn enable_panic_on_error(&mut self) -> &mut Self[src]

Force the logger to panic when it encounters an error

pub fn disable_panic_on_error(&mut self) -> &mut Self[src]

Force the logger to ignore an encountered error silently

Trait Implementations

impl Log for Logger[src]

fn enabled(&self, _: &Metadata) -> bool[src]

Determines if a log message with the specified metadata would be logged.

See docs for more details

fn log(&self, record: &Record)[src]

Logs the LogRecord. See docs for more details

Auto Trait Implementations

impl !RefUnwindSafe for Logger

impl Send for Logger

impl Sync for Logger

impl Unpin for Logger

impl !UnwindSafe for Logger

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, 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.

impl<V, T> VZip<V> for T where
    V: MultiLane<T>,