|
@@ -3,6 +3,7 @@ package myth
|
|
import (
|
|
import (
|
|
"io"
|
|
"io"
|
|
"log"
|
|
"log"
|
|
|
|
+ "os"
|
|
)
|
|
)
|
|
|
|
|
|
// Logger logger
|
|
// Logger logger
|
|
@@ -10,6 +11,75 @@ type Logger struct {
|
|
logger *log.Logger
|
|
logger *log.Logger
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+var (
|
|
|
|
+ defLog *Logger
|
|
|
|
+ defFP *os.File
|
|
|
|
+)
|
|
|
|
+
|
|
|
|
+// NewDefaultLogger defult logger
|
|
|
|
+func NewDefaultLogger(path string) (*Logger, error) {
|
|
|
|
+ var err error
|
|
|
|
+ fp := &os.File{}
|
|
|
|
+ if fp, err = os.OpenFile(path, os.O_RDWR|os.O_APPEND|os.O_CREATE, 0666); err != nil {
|
|
|
|
+ return nil, err
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ defLog = NewLogger(fp)
|
|
|
|
+ defFP = fp
|
|
|
|
+
|
|
|
|
+ return defLog, nil
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+// ReopenDefaultLogger re open default logger
|
|
|
|
+func ReopenDefaultLogger(path string) (*Logger, error) {
|
|
|
|
+ var err error
|
|
|
|
+ fp := &os.File{}
|
|
|
|
+ if fp, err = os.OpenFile(path, os.O_RDWR|os.O_APPEND|os.O_CREATE, 0666); err != nil {
|
|
|
|
+ return nil, err
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if defLog == nil {
|
|
|
|
+ defLog = NewLogger(fp)
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return defLog, nil
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+// CloseDefaultLogger close
|
|
|
|
+func CloseDefaultLogger() error {
|
|
|
|
+ return defFP.Close()
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+// LogDebug debug
|
|
|
|
+func LogDebug(v ...interface{}) {
|
|
|
|
+ defLog.logger.SetPrefix("[DEBUG]")
|
|
|
|
+ defLog.logger.Println(v...)
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+// LogInfo info
|
|
|
|
+func LogInfo(v ...interface{}) {
|
|
|
|
+ defLog.logger.SetPrefix("[INFO]")
|
|
|
|
+ defLog.logger.Println(v...)
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+// LogWarn warn
|
|
|
|
+func LogWarn(v ...interface{}) {
|
|
|
|
+ defLog.logger.SetPrefix("[Warn]")
|
|
|
|
+ defLog.logger.Println(v...)
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+// LogErr err
|
|
|
|
+func LogErr(v ...interface{}) {
|
|
|
|
+ defLog.logger.SetPrefix("[Err]")
|
|
|
|
+ defLog.logger.Println(v...)
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+// LogAlert alert
|
|
|
|
+func LogAlert(v ...interface{}) {
|
|
|
|
+ defLog.logger.SetPrefix("[Alert]")
|
|
|
|
+ defLog.logger.Println(v...)
|
|
|
|
+}
|
|
|
|
+
|
|
// NewLogger new logger
|
|
// NewLogger new logger
|
|
func NewLogger(out io.Writer) *Logger {
|
|
func NewLogger(out io.Writer) *Logger {
|
|
logger := log.New(out, "[INFO]", log.Ldate|log.Ltime)
|
|
logger := log.New(out, "[INFO]", log.Ldate|log.Ltime)
|