| Crates.io | layla-log |
| lib.rs | layla-log |
| version | 0.3.3-alpha |
| created_at | 2024-03-31 13:07:47.457268+00 |
| updated_at | 2025-11-27 16:03:45.937954+00 |
| description | A simple logger library. |
| homepage | https://github.com/ILikeLayla/Layla-log |
| repository | |
| max_upload_size | |
| id | 1191664 |
| size | 74,263 |
A simple logger library. This library provides a simple log writer and simple log-level control. It can record logs to a target directory and also print them to the terminal. The log can be set to different levels (Error, Warn, Debug, Info and Trace). Only the logs with significant levels will be recorded to file or printed to the terminal. Moreover, when the log file size exceeds a certain limit, it will automatically route to new files with indexing.
It can be used without any pre-setting.
use layla_log::*;
fn main() {
error!("This is an error message");
warn!("This is a warning message");
info!("This is an info message");
debug!("This is a debug message");
trace!("This is a trace message");
}
and these are the output in the log file and the things are printed to terminal:
TIME ERROR [SCOPE @ PATH] This is an error message
TIME WARN [SCOPE @ PATH] This is a warning message
TIME INFO [SCOPE @ PATH] This is an info message
TIME DEBUG [SCOPE @ PATH] This is a debug message
TIME TRACE [SCOPE @ PATH] This is a trace message
And by using the log_set! macro, some things can be customized.
This is an example:
use layla_log::*;
fn main() {
log_set! {
single_length: 1219
};
error!("This is an error message");
warn!("This is a warning message");
info!("This is an info message");
debug!("This is a debug message");
trace!("This is a trace message");
}
And those values which are not given, the setting will inherit the previous setting. The LogSetting will use the default values while initializing. And these are the default values:
"./logs/" as the default dir_path0 as the default log file single_lengthLogLevel::Trace as the default file_recode_levelLogLevel::Debug as the default terminal_print_level for debug assertions, LogLevel::Info for default terminal_print_level for release assertions0 as the default time_zone"%Y-%m-%d" as the default file_time_formatfalse as the default time_detailed_displaytrue as the default print_outtrue as the default display_pathtrue as the default display_scopeIn some cases, log is only used for debugging, and need to clean the log files each time the program runs, then clean_log() can be applied to clear the log file.
use layla_log::clean_log;
fn main() {
clean_log();
}
If the logger is disabled and then enabled after some codes, then the disable_log and enable_log methods can be used.
use layla_log::*;
fn main() {
disable_log();
// logs will not be recorded or printed
error!("This is an error message");
warn!("This is a warning message");
info!("This is an info message");
debug!("This is a debug message");
trace!("This is a trace message");
enable_log();
// logs can be recorded or printed (with significant level)
error!("This is an error message");
warn!("This is a warning message");
info!("This is an info message");
debug!("This is a debug message");
trace!("This is a trace message");
}
If you want to announce the level yourself instead of using the corresponding macro, you can use the log! macro.
use layla_log::*;
fn main() {
log!(LogLevel::Trace, "Hello, {}!", "world");
}
clean_log()disable_log()enable_log()trace!info!debug!warn!error!log!set_log!