pub mod log {
extern crate chrono;
extern crate colored;
use chrono::prelude::*;
use colored::*;
use std::env;
pub struct Logger {
pkg: String,
name: String,
}
impl Logger {
fn new(name: &str) -> Logger {
Logger {
pkg: env!("CARGO_PKG_NAME").to_string(),
name: name.to_string(),
}
}
pub fn get_name(&self) -> String {
return format!("{}", self.name);
}
pub fn info(&self, cont: &str) {
println!(
"{} [{}:{}] {}: {}",
get_current_time(),
self.pkg.green().bold(),
self.name.blue(),
"INFO".blue(),
cont.to_string()
);
}
pub fn error(&self, cont: &str) {
println!(
"{} [{}:{}] {}: {}",
get_current_time(),
self.pkg.green().bold(),
self.name.blue(),
"ERROR".red(),
cont.to_string()
);
}
pub fn fatal(&self, cont: &str) {
println!(
"{} [{}:{}] {}: {}",
get_current_time(),
self.pkg.green().bold(),
self.name.blue(),
"FATAL".red().bold(),
cont.to_string()
);
}
pub fn debug(&self, cont: &str) {
println!(
"{} [{}:{}] {}: {}",
get_current_time(),
self.pkg.green().bold(),
self.name.blue(),
"DEBUG".magenta(),
cont.to_string()
);
}
pub fn warn(&self, cont: &str) {
println!(
"{} [{}:{}] {}: {}",
get_current_time(),
self.pkg.green().bold(),
self.name.blue(),
"WARN".yellow(),
cont.to_string()
);
}
pub fn custom(&self, t: &str, cont: &str) {
println!(
"[{}:{}] {}: {}",
self.pkg,
self.name,
t.to_string(),
cont.to_string()
);
}
}
pub fn get(name: &str) -> Logger {
let logger = Logger::new(name);
return logger;
}
pub fn get_current_time() -> String {
let local_time = Local::now();
return local_time.format("%Y-%m-%d %H:%M:%S").to_string();
}
}