Struct gelf::Logger
[−]
[src]
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]
fn new(backend: Box<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.
fn new_with_hostname(backend: Box<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
fn install<T: Into<LogLevelFilter>>(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.
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
.
fn hostname(&self) -> &String
Return the hostname used for GELF's host
-field
fn set_hostname(&mut self, hostname: String) -> &mut Self
Set the hostname used for GELF's host
-field
fn default_metadata(&self) -> &HashMap<String, String>
Return all default metadata
fn set_default_metadata(&mut self, key: String, value: String) -> &mut Self
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"
fn panic_on_error(&self) -> bool
Return a flag whether the logger panics when it encounters an error
fn enable_panic_on_error(&mut self) -> &mut Self
Force the logger to panic when it encounters an error
fn disable_panic_on_error(&mut self) -> &mut Self
Force the logger to ignore an encountered error silently