FStdoutLogger

Struct FStdoutLogger 

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

The main logger implementation that outputs to stdout and optionally to a file.

This struct implements the Log trait from the standard log crate, handling log messages by:

  1. Writing to stdout with optional colors and formatting
  2. Writing to a file (if configured) with full details

§Example

use fstdout_logger::{FStdoutLogger, LoggerConfig};
use log::LevelFilter;

// Creating a logger directly (usually done via helper functions)
let logger = FStdoutLogger::with_config(
    Some("app.log"),
    LoggerConfig::default()
).expect("Failed to create logger");

// Initialize as the global logger
logger.init_with_level(LevelFilter::Info).expect("Failed to initialize logger");

Implementations§

Source§

impl FStdoutLogger

Source

pub fn new<P: AsRef<Path>>(file_path: Option<P>) -> Result<Self, LogError>

Create a new logger with default configuration.

This is a convenience method that uses LoggerConfig::default().

§Arguments
  • file_path - Optional path to a log file. If None, logs will only go to stdout.
§Returns

A new logger instance or an error if the log file couldn’t be opened.

Source

pub fn with_config<P: AsRef<Path>>( file_path: Option<P>, config: LoggerConfig, ) -> Result<Self, LogError>

Create a new logger with custom configuration.

§Arguments
  • file_path - Optional path to a log file. If None, logs will only go to stdout.
  • config - Configuration options for the logger.
§Returns

A new logger instance or an error if the log file couldn’t be opened.

Source

pub fn init(self) -> Result<(), LogError>

Initialize the logger with the default configuration.

This sets the maximum log level to Trace to enable all logs, but actual filtering will happen according to the level setting in the logger’s configuration.

§Returns

Ok(()) if initialization succeeded, or an error if it failed.

Source

pub fn init_with_level(self, level: LevelFilter) -> Result<(), LogError>

Initialize the logger with a specific log level.

This sets the global maximum log level, overriding the level in the logger’s configuration.

§Arguments
  • level - The minimum log level to display.
§Returns

Ok(()) if initialization succeeded, or an error if it failed.

Trait Implementations§

Source§

impl Log for FStdoutLogger

Implementation of the Log trait for FStdoutLogger.

This handles:

  • Checking if a log message should be processed (with module-level filtering)
  • Formatting messages differently for stdout and file
  • Writing to both destinations
  • Flushing output streams
Source§

fn enabled(&self, metadata: &Metadata<'_>) -> bool

Determines if a log message with the specified metadata would be logged. Read more
Source§

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

Logs the Record. Read more
Source§

fn flush(&self)

Flushes any buffered records. Read more

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.