You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
82 lines
2.0 KiB
82 lines
2.0 KiB
package log
|
|
|
|
import (
|
|
"fmt"
|
|
"runtime/debug"
|
|
"time"
|
|
|
|
rotatelogs "github.com/lestrrat-go/file-rotatelogs"
|
|
log "github.com/sirupsen/logrus"
|
|
)
|
|
|
|
var logger *log.Logger
|
|
var logWriter *rotatelogs.RotateLogs
|
|
|
|
func LogInit(path string) {
|
|
var err error
|
|
//实例化
|
|
filename := path + " %Y-%m-%d %H %M.log"
|
|
logger = log.New()
|
|
// 设置 rotatelogs
|
|
logWriter, err = rotatelogs.New(
|
|
// 分割后的文件名称
|
|
filename,
|
|
// 生成软链,指向最新日志文件
|
|
rotatelogs.WithLinkName(path),
|
|
// 设置最大保存时间(7天)
|
|
rotatelogs.WithMaxAge(7*24*time.Hour),
|
|
//这里设置24小时产生一个日志文件
|
|
rotatelogs.WithRotationTime(24*time.Hour),
|
|
)
|
|
log.SetOutput(logWriter)
|
|
if err != nil {
|
|
fmt.Println("err", err)
|
|
}
|
|
logger.SetFormatter(&log.TextFormatter{
|
|
ForceQuote: true, //键值对加引号
|
|
TimestampFormat: "2006-01-02 15:04:05", //时间格式
|
|
FullTimestamp: true,
|
|
})
|
|
logger.SetOutput(logWriter)
|
|
|
|
}
|
|
func Info(args ...interface{}) {
|
|
/********************************************/
|
|
fmt.Println(args...)
|
|
/********************************************/
|
|
logger.Infoln(args...)
|
|
}
|
|
func Infof(format string, args ...interface{}) {
|
|
logger.Infof(format, args...)
|
|
}
|
|
func Println(args ...interface{}) {
|
|
/********************************************/
|
|
fmt.Println(args...)
|
|
/********************************************/
|
|
logger.Println(args)
|
|
}
|
|
func Errorln(args ...interface{}) {
|
|
/********************************************/
|
|
fmt.Println(args...)
|
|
/********************************************/
|
|
logger.Errorln(args...)
|
|
}
|
|
func WriteErr(err error) {
|
|
Errorln("----------------------------------")
|
|
/********************************************/
|
|
Errorln(err)
|
|
fmt.Println(string(debug.Stack()))
|
|
/********************************************/
|
|
logWriter.Write([]byte(string(debug.Stack()) + "\r\n")) //输出堆栈信息
|
|
Errorln("----------------------------------")
|
|
}
|
|
|
|
func Try() {
|
|
if err := recover(); err != nil {
|
|
WriteErr(err.(error))
|
|
}
|
|
}
|
|
func TryNoMsg() {
|
|
if err := recover(); err != nil {
|
|
}
|
|
}
|
|
|