tcp server 用于给andriod 客户端定时发送消息
fix
liuxiaolong
2021-05-19 ed8c09655a43d9ec44142fb968e5abfbb69416cb
log/log.go
New file
@@ -0,0 +1,75 @@
package log
import (
   "io/ioutil"
   "os"
   "os/exec"
   "path/filepath"
   "time"
   rotatelogs "github.com/lestrrat-go/file-rotatelogs"
   "github.com/rifflock/lfshook"
   "github.com/sirupsen/logrus"
)
var Log *logrus.Logger
func init() {
   Log = NewLogger()
   Log.SetLevel(logrus.ErrorLevel)
}
func SetLogLevel(level string){
   if level == "ErrorLevel" {
      Log.SetLevel(logrus.ErrorLevel)
   } else if level == "InfoLevel" {
      Log.SetLevel(logrus.InfoLevel)
   } else {
      Log.SetLevel(logrus.InfoLevel)
   }
}
func NewLogger() *logrus.Logger {
   if Log != nil {
      return Log
   }
   rootPath := GetAppRootPath()
   infopath := rootPath + "/logs/info.log"
   infowriter, _ := rotatelogs.New(
      infopath+".%Y%m%d%H%M",
      rotatelogs.WithLinkName(infopath),
      rotatelogs.WithMaxAge(30*24*time.Hour),
      rotatelogs.WithRotationTime(24*time.Hour),
   )
   errorpath := rootPath + "/logs/error.log"
   errorwriter, _ := rotatelogs.New(
      errorpath+".%Y%m%d%H%M",
      rotatelogs.WithLinkName(errorpath),
      rotatelogs.WithMaxAge(30*24*time.Hour),
      rotatelogs.WithRotationTime(24*time.Hour),
   )
   Log = logrus.New()
   Log.SetOutput(ioutil.Discard)
   Log.Hooks.Add(lfshook.NewHook(
      lfshook.WriterMap{
         logrus.InfoLevel:  infowriter,
         logrus.ErrorLevel: errorwriter,
      },
      &logrus.JSONFormatter{},
   ))
   return Log
}
func GetAppRootPath() string {
   file,err:= exec.LookPath(os.Args[0])
   if err != nil {
      return ""
   }
   p, err := filepath.Abs(file)
   if err != nil {
      return ""
   }
   return filepath.Dir(p)
}