-logfile flag 추가
This commit is contained in:
@ -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 {
|
outWriter = io.MultiWriter(outWriter, logFile)
|
||||||
stdlogger.Println(fi.Name(), fi.ModTime())
|
errWriter = io.MultiWriter(errWriter, logFile)
|
||||||
}
|
}
|
||||||
|
|
||||||
logFile, err = os.Create(fmt.Sprintf("%s/%s_%s.err", logpath, binname, now.Format("2006-01-02T15-04-05")))
|
stdlogger = log.New(outWriter, "", log.LstdFlags)
|
||||||
if err != nil {
|
errlogger = log.New(errWriter, "", log.LstdFlags)
|
||||||
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)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func Println(v ...interface{}) {
|
func Println(v ...interface{}) {
|
||||||
|
|||||||
Reference in New Issue
Block a user