package logger import ( "fmt" "go/build" "os" "sync" "github.com/sirupsen/logrus" ) var once sync.Once var instance *logrus.Logger func Get(logfile string) logrus.Logger { // once.Do(func() { // instance = initializeLogger() // }) initLogger(logfile) return *instance } func initLogger(logFile string) { log := logrus.New() path := build.Default.GOPATH + "/log/" if _, err := os.Stat(path); os.IsNotExist(err) { os.Mkdir(path, os.ModeDir) } var logpath = path + logFile fmt.Println(logpath) f, err := os.OpenFile(logpath, os.O_WRONLY|os.O_APPEND|os.O_CREATE, 0644) Formatter := new(logrus.TextFormatter) Formatter.TimestampFormat = "02-01-2006 15:04:05" Formatter.FullTimestamp = true log.SetFormatter(Formatter) if err != nil { fmt.Println(err) } else { log.SetOutput(f) } instance = log //return *log }