diff --git a/logger/logger.go b/logger/logger.go index 3c47b5e..a19b6b8 100644 --- a/logger/logger.go +++ b/logger/logger.go @@ -8,6 +8,7 @@ import ( "path" "runtime" "runtime/debug" + "strconv" "strings" "repositories.action2quare.com/ayo/gocommon/flagx" @@ -15,7 +16,7 @@ import ( var stdlogger *log.Logger var UseLogFile = flagx.Bool("logfile", false, "") -var logprefix = flagx.Int("logprefix", 3, "0 : no_prefix, 1 : date, 2 : time, 3 : datetime") +var _ = flagx.Int("logprefix", 3, "0 : no_prefix, 1 : date, 2 : time, 3 : datetime") func init() { binpath, _ := os.Executable() @@ -24,7 +25,29 @@ func init() { var outWriter io.Writer outWriter = os.Stdout - if *UseLogFile { + args := os.Args + useLogFile := false + for _, arg := range args { + if strings.HasPrefix(arg, "-logfile=") { + useLogFile, _ = strconv.ParseBool(arg[9:]) + break + } + + if arg == "-logfile" { + useLogFile = true + break + } + } + + logprefix := 3 + for _, arg := range args { + if strings.HasPrefix(arg, "-logprefix=") { + logprefix, _ = strconv.Atoi(arg[11:]) + break + } + } + + if useLogFile { ext := path.Ext(binname) if len(ext) > 0 { binname = binname[:len(binname)-len(ext)] @@ -39,8 +62,8 @@ func init() { outWriter = io.MultiWriter(outWriter, logFile) } - if *logprefix < 4 { - stdlogger = log.New(outWriter, "", *logprefix) + if logprefix < 4 { + stdlogger = log.New(outWriter, "", logprefix) } else { stdlogger = log.New(outWriter, "", log.LstdFlags) }