Struct CollectdLoggerBuilder

Source
pub struct CollectdLoggerBuilder { /* private fields */ }
Expand description

A builder for configuring and installing a collectd logger.

It is recommended to instantiate the logger in PluginManager::plugins.

The use case of multiple rust plugins that instantiate a global logger is supported. Each plugin will have its own copy of a global logger. Thus plugins won’t interefere with others and their logging.

Implementations§

Source§

impl CollectdLoggerBuilder

Source

pub fn new() -> Self

Creates a new CollectdLoggerBuilder that will forward log messages to collectd.

By default, accepts all log levels and uses the default format. See CollectdLoggerBuilder::filter_level to filter and CollectdLoggerBuilder::format for custom formatting.

Source

pub fn prefix_plugin<T: PluginManager>(self) -> Self

Sets a prefix using the plugin manager’s name.

Source

pub fn filter_level(self, level: LevelFilter) -> Self

Sets the log level filter - only messages at this level and above will be forwarded to collectd.

§Example
use collectd_plugin::CollectdLogger;
use log::LevelFilter;

CollectdLogger::new()
    .prefix("myplugin")
    .filter_level(LevelFilter::Info)
    .try_init()?;

log::debug!("This will be filtered out");
log::info!("This will go to collectd");
Source

pub fn format<F>(self, format: F) -> Self
where F: Fn(&mut dyn Write, &Record<'_>) -> Result<()> + Sync + Send + 'static,

Sets the format function for formatting the log output.

§Example
use collectd_plugin::CollectdLoggerBuilder;
use std::io::Write;

CollectdLoggerBuilder::new()
    .prefix("myplugin")
    .format(|buf, record| {
        write!(buf, "[{}] {}", record.level(), record.args())
    })
    .try_init()?;
Source

pub fn build(self) -> CollectdLogger

The returned logger implements the Log trait and can be installed manually or nested within another logger.

Source

pub fn try_init(self) -> Result<(), SetLoggerError>

Initializes this logger as the global logger.

All log messages will go to collectd via plugin_log. This is the only appropriate destination for logs in collectd plugins.

§Errors

This function will fail if it is called more than once, or if another library has already initialized a global logger.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.