1 stable release

1.0.4 Mar 9, 2023

#684 in Debugging

GPL-3.0-only

30KB
322 lines

UltimateLogger

Ultimate Logger is a simple logger than can log to a file and/or stdout. It is designed to be simple to use and to be able to be used in any project. It uses colored output to make it easier to read when logging to stdout.

It has 6 levels of logging: trace, debug, info, warn, error and critical. It has a log function that can be used to log any level of logging. It also has shortcut trace, debug, info, warn, error and critical functions to log at those levels.

Multiple loggers with different names can be made. Each logger can have its own level of logging. The default logger has a level of trace. The default logger can be accessed with the Logger::new_default() function. Other loggers can be made with the Logger::new() function.

Examples

Write to the console

use ultimate_logger::Logger;
use ultimate_logger::log_level::LogLevel;

let mut logger = Logger::new(String::from("example"), LogLevel::Trace);

logger.trace("This is a trace message");
logger.debug("This is a debug message");
logger.info("This is an info message");
logger.warning("This is a warning message");
logger.error("This is an error message");
logger.critical("This is a critical message");

This will output the following to the console with appropriate colors:

[2020-05-01 12:00:00.000] [example] [trace] This is a trace message
[2020-05-01 12:00:00.000] [example] [debug] This is a debug message
[2020-05-01 12:00:00.000] [example] [info] This is an info message
[2020-05-01 12:00:00.000] [example] [warning] This is a warning message
[2020-05-01 12:00:00.000] [example] [error] This is an error message
[2020-05-01 12:00:00.000] [example] [critical] This is a critical message

Write to a file

use ultimate_logger::Logger;
use ultimate_logger::log_level::LogLevel;

let mut logger = Logger::new_to_file(String::from("example"), LogLevel::Trace, String::from("log.txt"), true);

logger.trace("This is a trace message");
logger.debug("This is a debug message");
logger.info("This is an info message");
logger.warning("This is a warning message");
logger.error("This is an error message");
logger.critical("This is a critical message");

Below is the text which will output to the file log.txt, and to the console. The console output will be colored.

[2020-05-01 12:00:00.000] [example] [trace] This is a trace message
[2020-05-01 12:00:00.000] [example] [debug] This is a debug message
[2020-05-01 12:00:00.000] [example] [info] This is an info message
[2020-05-01 12:00:00.000] [example] [warning] This is a warning message
[2020-05-01 12:00:00.000] [example] [error] This is an error message
[2020-05-01 12:00:00.000] [example] [critical] This is a critical message

Features

  • Write to a file
  • Write to the console
  • Write to both
  • Set a minimum log level
  • Colored output
  • Timestamps
  • Multiple loggers with different names

Documentation

Documentation

Crates.io

Crates.io

License

This project is licensed under the GNU General Public License v3.0. See the LICENSE file for details.

Dependencies

~1–11MB
~72K SLoC