```toml
[dependencies] loggerithm = "1" ```
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`.
);
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);
}
``
See
examples/basic_logging.rs`.
```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!");
}
``
See
examples/customlevel.rsand
examples/customlevel_formatting.rs`.
```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.");
}
``
See
examples/custom_logger.rs`
See examples/module_tree.rs
for information on how loggers work across modules.