package main import ( "log" "os" ) type Logger struct { *log.Logger } const ( Reset = "\033[0m" Red = "\033[31m" Green = "\033[32m" Yellow = "\033[33m" Blue = "\033[34m" ) func NewLogger(prefix string) *Logger { return &Logger{ Logger: log.New(os.Stdout, prefix, log.Ldate|log.Ltime|log.Lshortfile), } } func (l *Logger) LogInfo(jobName, message string) { l.Printf("%s[INFO] [%s] %s%s", Green, jobName, message, Reset) } func (l *Logger) LogError(jobName, message string) { l.Printf("%s[ERROR] [%s] %s%s", Red, jobName, message, Reset) } func (l *Logger) LogJobState(jobName, state string) { l.Printf("%s[JOB STATE] [%s] %s%s", Yellow, jobName, state, Reset) }