Struct ArcFileLogWriter

Source
pub struct ArcFileLogWriter(/* private fields */);
Expand description

A shareable FileLogWriter with a handle.

Methods from Deref<Target = FileLogWriter>§

Source

pub fn format( &self, ) -> fn(&mut dyn Write, &mut DeferredNow, &Record<'_>) -> Result<(), Error>

Returns a reference to its configured output format function.

Source

pub fn reset(&self, flwb: &FileLogWriterBuilder) -> Result<(), FlexiLoggerError>

Replaces parts of the configuration of the file log writer.

Note that the write mode and the format function cannot be reset and that the provided FileLogWriterBuilder must have the same values for these as the current FileLogWriter.

§Errors

FlexiLoggerError::Reset if a reset was tried with a different write mode.

FlexiLoggerError::Io if the specified path doesn’t work.

FlexiLoggerError::OutputBadDirectory if the specified path is not a directory.

FlexiLoggerError::Poison if some mutex is poisoned.

Source

pub fn config(&self) -> Result<FileLogWriterConfig, FlexiLoggerError>

Returns the current configuration of the file log writer

§Errors

FlexiLoggerError::Poison if some mutex is poisoned.

Source

pub fn reopen_outputfile(&self) -> Result<(), FlexiLoggerError>

Makes the FileLogWriter re-open the current log file.

FileLogWriter expects that nobody else modifies the file to which it writes, and offers capabilities to rotate, compress, and clean up log files.

However, if you use tools like linux’ logrotate to rename or delete the current output file, you need to inform the FileLogWriter about such actions by calling this method. Otherwise the FileLogWriter will not stop writing to the renamed or even deleted file!

§Example

logrotate e.g. can be configured to send a SIGHUP signal to your program. You should handle SIGHUP in your program explicitly, e.g. using a crate like ctrlc, and call this function from the registered signal handler.

§Errors

FlexiLoggerError::Poison if some mutex is poisoned.

Source

pub fn rotate(&self) -> Result<(), FlexiLoggerError>

Trigger an extra log file rotation.

Does nothing if rotation is not configured.

§Errors

FlexiLoggerError::Poison if some mutex is poisoned.

IO errors.

Source

pub fn existing_log_files( &self, selector: &LogfileSelector, ) -> Result<Vec<PathBuf>, FlexiLoggerError>

Returns the list of existing log files according to the current FileSpec.

The list includes the current log file and the compressed files, if they exist.

§Errors

FlexiLoggerError::Poison if some mutex is poisoned.

Trait Implementations§

Source§

impl Clone for ArcFileLogWriter

Source§

fn clone(&self) -> ArcFileLogWriter

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Write for ArcFileLogWriter

Source§

fn write(&mut self, buffer: &[u8]) -> Result<usize, Error>

Writes a buffer into this writer, returning how many bytes were written. Read more
Source§

fn flush(&mut self) -> Result<(), Error>

Flushes this output stream, ensuring that all intermediately buffered contents reach their destination. Read more
1.36.0 · Source§

fn write_vectored(&mut self, bufs: &[IoSlice<'_>]) -> Result<usize, Error>

Like write, except that it writes from a slice of buffers. Read more
Source§

fn is_write_vectored(&self) -> bool

🔬This is a nightly-only experimental API. (can_vector)
Determines if this Writer has an efficient write_vectored implementation. Read more
1.0.0 · Source§

fn write_all(&mut self, buf: &[u8]) -> Result<(), Error>

Attempts to write an entire buffer into this writer. Read more
Source§

fn write_all_vectored(&mut self, bufs: &mut [IoSlice<'_>]) -> Result<(), Error>

🔬This is a nightly-only experimental API. (write_all_vectored)
Attempts to write multiple buffers into this writer. Read more
1.0.0 · Source§

fn write_fmt(&mut self, args: Arguments<'_>) -> Result<(), Error>

Writes a formatted string into this writer, returning any error encountered. Read more
1.0.0 · Source§

fn by_ref(&mut self) -> &mut Self
where Self: Sized,

Creates a “by reference” adapter for this instance of Write. Read more
Source§

impl Deref for ArcFileLogWriter

Source§

type Target = FileLogWriter

The resulting type after dereferencing.
Source§

fn deref(&self) -> &FileLogWriter

Dereferences the value.

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. 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.