Struct WriteSink

Source
pub struct WriteSink<W>
where W: Write + Send,
{ /* private fields */ }
Expand description

A sink that writes log messages into an arbitrary impl Write object.

§Performance Notice

Since WriteSink can write into any impl Write objects, the assumptions made on the underlying impl Write object is very weak and this does impact performance. You should use other sinks or implement your own sinks whenever possible. WriteSink is your last resort if no other sinks meet your requirement.

If you want to log into a file, use FileSink or RotatingFileSink instead.

If you want to log into the standard streams, use StdStreamSink instead.

Implementations§

Source§

impl<W> WriteSink<W>
where W: Write + Send,

Source

pub fn builder() -> WriteSinkBuilder<W, ()>

Gets a builder of WriteSink with default parameters:

ParameterDefault Value
level_filterAll
formatterFullFormatter
error_handlerdefault error handler
targetmust be specified
Source

pub fn with_target<F, R>(&self, callback: F) -> R
where F: FnOnce(&mut W) -> R,

Invoke a callback function with the underlying impl Write object.

This function returns whatever the given callback function returns.

Note that this sink cannot write into the underlying impl Write object while the given callback function is running. If the underlying impl Write object supports a relatively cheap clone operation, consider using the clone_target method.

Source§

impl<W> WriteSink<W>
where W: Write + Send + Clone,

Source

pub fn clone_target(&self) -> W

Clone the underlying impl Write object.

Trait Implementations§

Source§

impl<W> Drop for WriteSink<W>
where W: Write + Send,

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

impl<W> Sink for WriteSink<W>
where W: Write + Send,

Source§

fn log(&self, record: &Record<'_>) -> Result<()>

Logs a record.
Source§

fn flush(&self) -> Result<()>

Flushes any buffered records.
Source§

fn level_filter(&self) -> LevelFilter

Gets the log level filter.
Source§

fn set_level_filter(&self, level_filter: LevelFilter)

Sets the log level filter.
Source§

fn set_formatter(&self, formatter: Box<dyn Formatter>)

Sets the formatter.
Source§

fn set_error_handler(&self, handler: Option<ErrorHandler>)

Sets a error handler. Read more
Source§

fn should_log(&self, level: Level) -> bool

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

Auto Trait Implementations§

§

impl<W> !Freeze for WriteSink<W>

§

impl<W> !RefUnwindSafe for WriteSink<W>

§

impl<W> Send for WriteSink<W>

§

impl<W> Sync for WriteSink<W>

§

impl<W> Unpin for WriteSink<W>
where W: Unpin,

§

impl<W> !UnwindSafe for WriteSink<W>

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> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
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.