一 log.go
package log
import (
rotatelogs "github.com/lestrrat-go/file-rotatelogs"
llog "github.com/sirupsen/logrus"
"time"
"uwb_pos/config"
)
func init() {
path := config.LogPath
writer, _ := rotatelogs.New(
//path+".%Y%m%d%H%M",
path+".%Y%m%d%H",
rotatelogs.WithLinkName(path),
rotatelogs.WithMaxAge(time.Duration(config.LogMaxAge)*time.Hour),
rotatelogs.WithRotationTime(time.Duration(config.LogRotatTm)*time.Minute),
)
llog.SetOutput(writer)
if config.LogLevel == 1{
llog.SetLevel(llog.DebugLevel)
}else if config.LogLevel == 2{
llog.SetLevel(llog.InfoLevel)
}else if config.LogLevel == 3{
llog.SetLevel(llog.WarnLevel)
}else if config.LogLevel == 4{
llog.SetLevel(llog.ErrorLevel)
}
// no set , it will be info
}
二 main文件用.导入
package main
import (
...
_ "uwb_pos/utils/log"
...
)
func main() {
//tcp
process()
}
三 process中使用日志
package udpserver
import (
llog "github.com/sirupsen/logrus"
"time"
)
func releaseLChan(){
...
llog.Info("$$$end conn read" + time.Now().In(CstSh).Format("2006-01-02 15:04:05") + "$$$")
...
}
四 配置文件
package config
const(
...//logs
LogPath = "./logs/log"
LogMaxAge = 24*60 //hour
LogRotatTm = 60 //min
LogLevel = 2 //1 debug 2 info 3 warn 4 error
...
)
五 验证结果
