# 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 ```rust 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: ```text [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 ```rust 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. ```text [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](https://docs.rs/ultimate_logger) ## Crates.io [Crates.io](https://crates.io/crates/ultimate_logger) ## License This project is licensed under the GNU General Public License v3.0. See the [LICENSE](LICENSE) file for details.