From 6c3131687a31063d8ab431a34aef5540049dae75 Mon Sep 17 00:00:00 2001 From: mountain Date: Wed, 14 Jun 2023 00:08:16 +0900 Subject: [PATCH] =?UTF-8?q?-logfile=20flag=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- logger/logger.go | 40 ++++++++++++++-------------------------- 1 file changed, 14 insertions(+), 26 deletions(-) diff --git a/logger/logger.go b/logger/logger.go index 216e299..8d7ba5f 100644 --- a/logger/logger.go +++ b/logger/logger.go @@ -1,6 +1,7 @@ package logger import ( + "flag" "fmt" "io" "log" @@ -8,52 +9,39 @@ import ( "path" "runtime/debug" "strings" - "time" ) var stdlogger *log.Logger var errlogger *log.Logger +var logfile = flag.Bool("logfile", false, "") func init() { binpath, _ := os.Executable() binname := path.Base(strings.ReplaceAll(binpath, "\\", "/")) - logpath := os.Getenv("AYO_LOGGER_FILE_PATH") + var outWriter io.Writer + var errWriter io.Writer + outWriter = os.Stdout + errWriter = os.Stderr - if len(logpath) == 0 { - stdlogger = log.New(os.Stdout, "", log.LstdFlags) - errlogger = log.New(os.Stderr, "", log.LstdFlags) - } else { + if *logfile { ext := path.Ext(binname) if len(ext) > 0 { binname = binname[:len(binname)-len(ext)] } - if _, err := os.Stat(logpath); os.IsNotExist(err) { - os.Mkdir("logs", 0777) - } - - now := time.Now() - logFile, err := os.Create(fmt.Sprintf("%s/%s_%s.log", logpath, binname, now.Format("2006-01-02T15-04-05"))) + logFile, err := os.Create(fmt.Sprintf("%s.log", binname)) if err != nil { + os.Stdout.Write([]byte(err.Error())) panic(err) } - stdlogger = log.New(io.MultiWriter(os.Stdout, logFile), "", log.LstdFlags) - if fi, err := os.Stat(binpath); err == nil { - stdlogger.Println(fi.Name(), fi.ModTime()) - } - logFile, err = os.Create(fmt.Sprintf("%s/%s_%s.err", logpath, binname, now.Format("2006-01-02T15-04-05"))) - if err != nil { - panic(err) - } - errlogger = log.New(io.MultiWriter(os.Stderr, logFile), "", log.LstdFlags) - if fi, err := os.Stat(binpath); err == nil { - errlogger.Println(fi.Name(), fi.ModTime()) - } + outWriter = io.MultiWriter(outWriter, logFile) + errWriter = io.MultiWriter(errWriter, logFile) } - stdlogger.Println(binname) - errlogger.Println(binname) + + stdlogger = log.New(outWriter, "", log.LstdFlags) + errlogger = log.New(errWriter, "", log.LstdFlags) } func Println(v ...interface{}) {