π¬ A couple of functions to make logging in Rust easier.
# Cargo.toml
[dependencies]
rust_logging = "1.1.0"use rust_logging::*;fnmain(){// With default settingslet default_logger = Logger::new();// With custom settingslet settings = LoggerOptions{error_icon:"π₯",// the icon for errorswarn_icon:"β οΈ",// the icon for warningsinfo_icon:"βΉοΈ",// the icon for infosuccess_icon:"β
",// the icon for successicon_connector:"=>",// the connector between the icon and the messagelog_file:"log.txt",// the file to log to when logging to a filehighlight:true,// highlight text after ":" in the message
..Default::default()// the default values for the non specified settings};let custom_logger = settings.get_logger();}This code provides the following functions:
- π‘ warn(): Prints a warning message.
- π΄ error(): Prints an error message.
- π΅ info(): Prints an information message.
- π’ success(): Prints a success message.
- βΉοΈ Add a
fbefore the function name to print the message to the log file
Each function takes a single parameter, which is the message to be printed.
logger.error("a command failed : hello"); logger.info("executing command : hello");
logger.warn("a command is about to fail : hello");
logger.success("a command succeeded : hello");By default, the text after the colon is highlighted.
This can be disabled by setting the highlight field to false inside the custom settings.
let settings = LoggerOptions{highlight:false,
..Default::default()};let logger = settings.get_logger();By default, the icon and the message are separated by an arrow ->
You can change this by setting the icon_connector field to something else.
let settings = LoggerOptions{icon_connector:"=>",
..Default::default()}let logger = settings.get_logger();By default, the following icons are used:
| Icon | Function |
|---|---|
| [ x ] | error() |
| [ i ] | info() |
| [ v ] | success() |
| [ ! ] | warn() |
You can change this by setting the following fields inside the custom settings:
let settings = LoggerOptions{error_icon:"π₯",warn_icon:"β οΈ",info_icon:"βΉοΈ",success_icon:"β
",
..Default::default()};let logger = settings.get_logger();You can change the colors of the messages by setting the colors field inside the custom settings.
The value must be a rust_logging::Colors struct.
let my_colors = Colors{// \x1b is the escape character (ASCII 27) and [xxm is the color 'code'red:"\x1b[93m",// escape sequence for yellow foregroundbg_red:"\x1b[42m",// escape sequence for green background
..Default::default()};let settings = LoggerOptions{colors: my_colors,
..Default::default()};let logger = settings.get_logger();
logger.error("a command failed : hello");You can specify the log file path to write the messages to with the log_file field.
Use the f prefix before the function name to print the message to the log file.
let settings = LoggerOptions{log_file:"myProgram.log",
..Default::default()}let logger = settings.get_logger();// -----------------------------
logger.fwarning("This is a : warning message");
logger.fsuccess("This is a : success message");
logger.finfo("This is an : information message");
logger.ferror("This is an : error message");You can set environment variable LOG to print to also log to the terminal when logging to a file.
LOG=print [program]
########## PROGRAM SOURCE CODE ## ferror("This is an : error message");#########
[Terminal output] : [ x ] -> This is an : error message
########## LOGFILE CONTENT ## [ x ] -> This is an : error message#########If you have any problem, don't hesitate to open an issue
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.






