# durylog

This crate adds logging to your projects or library.

After trying a lot of crates to make logging, I only found crates rich of futures but very complicate to use, or crates that are easy to use but log only on file or only on console.

I decided to write my own lib that aims to be easy to use with some usefull futures: * Can log only on stdout, only on file or both. * Very easy to start: install and use immediately. * Short API names. * It implements log crate so you can use Rust library logging macros.

## Add to project: In file cargo.toml add: toml [dependencies] durylog = "0.1.0" ## Getting Start There are 2 way for use this crate: * Directly create object: let durylog=DLog::new(); and use like durylog.d("Log message"); * Initialize logger: DLog::new().init_logger().ok(); and use with log macro like debug!("Log message");

Read documentation and examples.

Output (on console and/or file) for default settings is like: 2023/01/02 18.01.27 : DEBUG : Debug message First tag is datetime stamp, second tag is level name followed by log message tag ## Examples: ### Directly usage with default settings: ```rust use durylog::DLog;

fn main() { let durylog=DLog::new();

 println!("{}", durylog.get_status()); // This prints all current crate settings (in this case are defaults)

 durylog.e("Error message");
 durylog.w("Warning message");
 durylog.i("Info message");
 durylog.d("Debug message");
 durylog.t("Trace message");

} ``` This will log on stdout without colors.

### Directly usage with custom settings: ```rust use durylog::DLog;

fn main() { let durylog=DLog::new() .withcolor() // Enable colors in console output (default disabled) .widhtimestampformat("%Y-%m-%d %H:%M:%S") // Change default timestamp .widhcustomseparator(" | ") // Change default separator pattern for items .withfile("durylog-custom.log").unwrap(); // Enable logging on file (default disable)

println!("{}", durylog.get_status()); // This prints all current crate settings (in this case there are custom)

 durylog.e("Error message");
 durylog.w("Warning message");
 durlog.i("Info message");
 durylog.d("Debug message");
 durylog.t("Trace message");

} ``` This will log on stdout with colors, different formatting for timestamp and different tags separator and in file durylog-custom.log are added same log lines as in console.

### Macros usage with default settings: ```rust use durylog::{error,warn,info,debug,trace,DLog};

fn main() { DLog::new().init_logger().ok();

 error!("Error message");
 warn!("Warning message");
 info!("Info message");
 debug!("Debug message");
 trace!("Trace message");

} ``` This will log on stdout without colors.

### Macros usage with custom settings: ```rust use durylog::{error,warn,info,debug,trace,DLog};

fn main() { DLog::new() .withcolor() // Enable colors in console output (default disabled) .widhtimestampformat("%Y-%m-%d %H:%M:%S") // Change default timestamp .widhcustomseparator(" | ") // Change default separator pattern for items .withfile("log-custom.log").unwrap() // Enable logging on file (default disable) .init_logger().ok();

 error!("Error message");
 warn!("Warning message");
 info!("Info message");
 debug!("Debug message");
 trace!("Trace message");

} ``` This will log on stdout with colors, different formatting for timestamp and different tags separator and in file log-custom.log are added same log lines as in console.