pub struct Logger { /* private fields */ }
Expand description
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
.
Implementations
sourceimpl Logger
impl Logger
sourcepub fn new(backend: Box<dyn Backend>) -> Result<Self>
pub fn new(backend: Box<dyn Backend>) -> Result<Self>
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.
sourcepub fn new_with_hostname(backend: Box<dyn Backend>, hostname: &str) -> Logger
pub fn new_with_hostname(backend: Box<dyn Backend>, hostname: &str) -> Logger
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
sourcepub fn install<T: Into<LevelFilter>>(self, log_level: T) -> Result<()>
pub fn install<T: Into<LevelFilter>>(self, log_level: T) -> Result<()>
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.
sourcepub fn log_message(&self, msg: Message<'_>)
pub fn log_message(&self, msg: Message<'_>)
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
.
sourcepub fn set_hostname<S: Into<String>>(&mut self, hostname: S) -> &mut Self
pub fn set_hostname<S: Into<String>>(&mut self, hostname: S) -> &mut Self
Set the hostname used for GELF’s host
-field
sourcepub fn default_metadata(&self) -> &HashMap<String, String>
pub fn default_metadata(&self) -> &HashMap<String, String>
Return all default metadata
sourcepub fn set_default_metadata<S, T>(&mut self, key: S, value: T) -> &mut Selfwhere
S: Into<String>,
T: Into<String>,
pub fn set_default_metadata<S, T>(&mut self, key: S, value: T) -> &mut Selfwhere
S: Into<String>,
T: Into<String>,
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"
sourcepub fn panic_on_error(&self) -> bool
pub fn panic_on_error(&self) -> bool
Return a flag whether the logger panics when it encounters an error
sourcepub fn enable_panic_on_error(&mut self) -> &mut Self
pub fn enable_panic_on_error(&mut self) -> &mut Self
Force the logger to panic when it encounters an error
sourcepub fn disable_panic_on_error(&mut self) -> &mut Self
pub fn disable_panic_on_error(&mut self) -> &mut Self
Force the logger to ignore an encountered error silently