|
@@ -0,0 +1,97 @@
|
|
|
+package tyr
|
|
|
+
|
|
|
+import (
|
|
|
+ "log"
|
|
|
+ "os"
|
|
|
+)
|
|
|
+
|
|
|
+// Logger logger
|
|
|
+type Logger struct {
|
|
|
+ FP *os.File
|
|
|
+ Log *log.Logger
|
|
|
+}
|
|
|
+
|
|
|
+var (
|
|
|
+ deflog *Logger
|
|
|
+)
|
|
|
+
|
|
|
+// 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 = &Logger{}
|
|
|
+ deflog.FP = fp
|
|
|
+ deflog.Log = log.New(fp, "[INFO]", log.LstdFlags)
|
|
|
+
|
|
|
+ return deflog, err
|
|
|
+}
|
|
|
+
|
|
|
+// 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 = &Logger{}
|
|
|
+ }
|
|
|
+ fpo := deflog.FP
|
|
|
+ deflog.FP = fp
|
|
|
+ deflog.Log = log.New(fp, "[INFO]", log.LstdFlags)
|
|
|
+ fpo.Close()
|
|
|
+
|
|
|
+ return deflog, err
|
|
|
+}
|
|
|
+
|
|
|
+// CloseDefaultLogger close
|
|
|
+func CloseDefaultLogger() error {
|
|
|
+ return deflog.FP.Close()
|
|
|
+}
|
|
|
+
|
|
|
+// LogInfo log info
|
|
|
+func LogInfo(v ...interface{}) {
|
|
|
+ deflog.Log.SetPrefix("[INFO]")
|
|
|
+ deflog.Log.Println(v...)
|
|
|
+}
|
|
|
+
|
|
|
+// LogDebug log debug
|
|
|
+func LogDebug(v ...interface{}) {
|
|
|
+ deflog.Log.SetPrefix("[DEBUG]")
|
|
|
+ deflog.Log.Println(v...)
|
|
|
+}
|
|
|
+
|
|
|
+// NewLogger new
|
|
|
+func NewLogger(path string) (logger *Logger, err error) {
|
|
|
+ fp := &os.File{}
|
|
|
+ if fp, err = os.OpenFile(path, os.O_RDWR|os.O_APPEND|os.O_CREATE, os.ModePerm); err != nil {
|
|
|
+ return
|
|
|
+ }
|
|
|
+
|
|
|
+ logger.FP = fp
|
|
|
+ logger.Log = log.New(fp, "[INFO]", log.Ldate|log.Ltime)
|
|
|
+
|
|
|
+ return
|
|
|
+}
|
|
|
+
|
|
|
+// Close close
|
|
|
+func (logger Logger) Close() error {
|
|
|
+ return logger.FP.Close()
|
|
|
+}
|
|
|
+
|
|
|
+// Info log info
|
|
|
+func (logger Logger) Info(v ...interface{}) {
|
|
|
+ logger.Log.SetPrefix("[INFO]")
|
|
|
+ logger.Log.Println(v...)
|
|
|
+}
|
|
|
+
|
|
|
+// Debug log debug
|
|
|
+func (logger Logger) Debug(v ...interface{}) {
|
|
|
+ logger.Log.SetPrefix("[DEBUG]")
|
|
|
+ logger.Log.Println(v...)
|
|
|
+}
|