1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97
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(); } }