自动化测试
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

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 {
}
}