56 lines
		
	
	
		
			902 B
		
	
	
	
		
			V
		
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			902 B
		
	
	
	
		
			V
		
	
	
module logger
 | 
						|
 | 
						|
const (
 | 
						|
	colors = {
 | 
						|
		"success": "\e[32",
 | 
						|
		"debug": "\e[36",
 | 
						|
		"error": "\e[91",
 | 
						|
		"warn": "\e[33",
 | 
						|
		"critical": "\e[31",
 | 
						|
		"fatal": "\e[31",
 | 
						|
		"info": "\e[37"
 | 
						|
	}
 | 
						|
)
 | 
						|
 | 
						|
struct Logger {
 | 
						|
	mod string
 | 
						|
}
 | 
						|
 | 
						|
pub fn new(mod string) &Logger {
 | 
						|
	return &Logger{mod: mod}
 | 
						|
}
 | 
						|
 | 
						|
pub fn (l &Logger) d(message string){
 | 
						|
	$if debug {
 | 
						|
		l.print("debug", message)
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
pub fn (l &Logger) i(message string){
 | 
						|
	l.print('info', message)
 | 
						|
}
 | 
						|
 | 
						|
pub fn (l &Logger) e(message string){
 | 
						|
	l.print('error', message)
 | 
						|
}
 | 
						|
 | 
						|
pub fn (l &Logger) c(message string){
 | 
						|
	l.print('critical', message)
 | 
						|
}
 | 
						|
 | 
						|
pub fn (l &Logger) f(message string){
 | 
						|
	l.print('fatal', message)
 | 
						|
	exit(-1)
 | 
						|
}
 | 
						|
 | 
						|
pub fn (l &Logger) w(message string){
 | 
						|
	l.print('warn', message)
 | 
						|
}
 | 
						|
 | 
						|
pub fn (l &Logger) s(message string) {
 | 
						|
	l.print('success', message)
 | 
						|
}
 | 
						|
 | 
						|
fn (l &Logger) print(mod, message string) {
 | 
						|
	println('${colors[mod]};7m[${mod}]\e[0m \e[1m${l.mod}\e[0m: ${message}')
 | 
						|
} |