logfather 0.2.5

A simple and straightforward logging library for Rust.
Documentation

Logfather

A simple, lightweight, and easy-to-use logging system. It allows for detailed log messages, configurable output levels, and supports both file and terminal output.

Features

  • Easy to set up and use
  • Supports logging to both the terminal and log files
  • Customizable log message format
  • Configurable log levels (Info, Debug, Warning, Error, and Critical)
  • Configurable level display including colors, highlights, and styles
  • Thread-safe

Getting Started

To start using Logfather, add the following to your Cargo.toml:

[dependencies]
logfather = "0.2.5"
  • Minimum supported Rust version: 1.60.0

Usage

Macros:

  • Trace: trace!()
  • Debug: debug!()
  • Info: info!()
  • Warning: warn!() or warning!()
  • Error: error!()
  • Critical: critical!() or crit!()
  • Diagnostic: diagnostic!() or diag!()

Quick setup for outputting to terminal:


use logfather::*;

fn main() {
    let mut logger = Logger::new(); //Terminal output is enabled by default

    error!("This is an error message");
}

Setting up for only file output with specific error levels to be written:


use logfather::*;

fn main() {
    let mut logger = Logger::new();
    logger.terminal(false); // Disable terminal output 
    logger.file(true); // Enable file output
    logger.path("log.txt"); // Set the path for file logging
    logger.level(Level::Error); // Set the minimum level

    info!("This is an info message"); // Will not be written to file
    debug!("This is a debug message"); // Will not be written to file
    warning!("This is a warning message"); // Will not be written to file

    error!("This is an error message"); // Will be written to file
    critical!("This is a critical message"); // Will be written to file
}

Set up for both terminal and file output capturing every level except warning


use logfather::*;

fn main() {
    // Supports the builder pattern
    let mut logger = Logger::new() // Terminal output is enabled by default
        .file(true) // Enable file output
        .path("log.txt") // Set the path for file logging
        .ignore(Level::Warning); // Set the specific level to ignore

    debug!("This is a debug message");
    warning!("This is a warning message"); // Will be ignored
    critical!("This is a critical message");
}

Debug and Diagnostic levels are Debug build only and will not be compiled in release builds


use logfather::*;

fn main() {
    debug!("This is a debug message");
    diag!("This is a diagnostic message"); 
    diagnostic!("This will not output for release builds");
}

License

This project is licensed under the MIT License - see the LICENSE file for details.

Contributing

._. why would you do this?