-logfile flag 추가

This commit is contained in:
2023-06-14 00:08:16 +09:00
parent 5950ff4bb8
commit 6c3131687a

View File

@ -1,6 +1,7 @@
package logger package logger
import ( import (
"flag"
"fmt" "fmt"
"io" "io"
"log" "log"
@ -8,52 +9,39 @@ import (
"path" "path"
"runtime/debug" "runtime/debug"
"strings" "strings"
"time"
) )
var stdlogger *log.Logger var stdlogger *log.Logger
var errlogger *log.Logger var errlogger *log.Logger
var logfile = flag.Bool("logfile", false, "")
func init() { func init() {
binpath, _ := os.Executable() binpath, _ := os.Executable()
binname := path.Base(strings.ReplaceAll(binpath, "\\", "/")) 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 { if *logfile {
stdlogger = log.New(os.Stdout, "", log.LstdFlags)
errlogger = log.New(os.Stderr, "", log.LstdFlags)
} else {
ext := path.Ext(binname) ext := path.Ext(binname)
if len(ext) > 0 { if len(ext) > 0 {
binname = binname[:len(binname)-len(ext)] binname = binname[:len(binname)-len(ext)]
} }
if _, err := os.Stat(logpath); os.IsNotExist(err) { logFile, err := os.Create(fmt.Sprintf("%s.log", binname))
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")))
if err != nil { if err != nil {
os.Stdout.Write([]byte(err.Error()))
panic(err) 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"))) outWriter = io.MultiWriter(outWriter, logFile)
if err != nil { errWriter = io.MultiWriter(errWriter, logFile)
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())
}
} }
stdlogger.Println(binname)
errlogger.Println(binname) stdlogger = log.New(outWriter, "", log.LstdFlags)
errlogger = log.New(errWriter, "", log.LstdFlags)
} }
func Println(v ...interface{}) { func Println(v ...interface{}) {