Loggerithm

Logging Library

Installation

```toml

Cargo.toml

[dependencies] loggerithm = "1" ```

Preparation

At the top of each module that logs text, you must add one of the following: rust use loggerithm::logger; // This will tell the module to use the logger from the parent module. // If there is no parent module, it will use the default logger. logger!(super); rust use loggerithm::logger; logger!(Logger::new() // All of the settings here. See `src/logger.rs`. );

Basic Logging

Loggerithm provides the standard logging levels, plus TRACE NOTICE SUCCESS and FAILURE. The log! macro is similar to the format! macro, but takes a logging level as the first argument. ```rust use loggerithm::level::{TRACE, DEBUG, INFO, NOTICE, SUCCESS, FAILURE, WARN, ERROR, FATAL}; use loggerithm::{log, logger};

logger!(super);

fn main() { let x = 25; log!(SUCCESS, "The value of x is equal to {}.", x); } `` Seeexamples/basic_logging.rs`.

Custom Logging Levels

```rust use loggerithm::{logger, log_level, log}; use loggerithm::level::INFO;

logger!(super);

loglevel!(MYAMAZINGCUSTOMLOGGINGLEVEL, LogLevel::new(30) .formatted(|v| v.magenta().onwhite().reverse()) );

fn main() { log!(INFO, "This example shows how to create a custom logging level and add formatting to it."); log!(MYAMAZINGCUSTOMLOGGINGLEVEL, "This used my custom level, now with formatting!"); } `` Seeexamples/customlevel.rsandexamples/customlevel_formatting.rs`.

Custom Logger

```rust use loggerithm::{logger, log}; use loggerithm::level::{INFO, WARN};

logger!(Logger::new() .setminseverity(WARN::severity()) .addtarget(|context| { println!("{} | {} | {}", context.timelocal(), context.levelnamefp(), context.message()) }) );

fn main() { log!(WARN, "This is logged."); log!(INFO, "This is not logged because it is below the minimum severity."); } `` Seeexamples/custom_logger.rs`

Modules

See examples/module_tree.rs for information on how loggers work across modules.