package logger import ( "log" "os" ) type Logger struct { infoLogger *log.Logger errorLogger *log.Logger debugLogger *log.Logger } var instance *Logger func init() { instance = NewLogger() } func NewLogger() *Logger { return &Logger{ infoLogger: log.New(os.Stdout, "INFO: ", log.Ldate|log.Ltime|log.Lshortfile), errorLogger: log.New(os.Stderr, "ERROR: ", log.Ldate|log.Ltime|log.Lshortfile), debugLogger: log.New(os.Stdout, "DEBUG: ", log.Ldate|log.Ltime|log.Lshortfile), } } func Info(format string, v ...interface{}) { instance.infoLogger.Printf(format, v...) } func Error(format string, v ...interface{}) { instance.errorLogger.Printf(format, v...) } func Debug(format string, v ...interface{}) { instance.debugLogger.Printf(format, v...) }