ls 5 years ago
parent
commit
76fcf75012
1 changed files with 97 additions and 0 deletions
  1. 97 0
      logger.go

+ 97 - 0
logger.go

@@ -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...)
+}