修改glog换行符为包变量,通过init包初始化,取消不通用的接口

This commit is contained in:
zseeker
2018-05-23 16:41:21 +08:00
parent 9a6b692ca5
commit b3047f0458
2 changed files with 37 additions and 49 deletions

View File

@ -20,7 +20,6 @@ type Logger struct {
path *gtype.String // 日志写入的目录路径
debug *gtype.Bool // 是否允许输出DEBUG信息
btSkip *gtype.Int // 错误产生时的backtrace回调信息skip条数
ln string // 日志换行符window是\r\nlinux是\n
}
// 默认的日志对象
@ -33,17 +32,9 @@ func New() *Logger {
path : gtype.NewString(),
debug : gtype.NewBool(true),
btSkip : gtype.NewInt(3),
ln : "\n",
}
}
// 获取默认的日志对象
// @author zseeker
// @date 2018-05-23
func GetLogger() *Logger {
return logger
}
// 日志日志目录绝对路径
func SetPath(path string) {
logger.SetPath(path)

View File

@ -24,6 +24,20 @@ const (
gDEFAULT_FILE_POOL_FLAGS = os.O_CREATE|os.O_WRONLY|os.O_APPEND
)
// 默认的日志换行符
var ln string
// 初始化日志换行符
// @author zseeker
// @date 2018-05-23
func init() {
if runtime.GOOS == "windows" {
ln = "\r\n"
} else {
ln = "\n"
}
}
// 设置BacktraceSkip
func (l *Logger) SetBacktraceSkip(skip int) {
l.btSkip.Set(skip)
@ -80,16 +94,6 @@ func (l *Logger) SetPath(path string) error {
return errors.New(errstr)
}
l.path.Set(strings.TrimRight(path, gfile.Separator))
// 添加日志换行符适配window是\r\nlinux是\n
// @author zseeker
// @date 2018-05-23
if runtime.GOOS == "windows" {
l.ln = "\r\n"
} else {
l.ln = "\n"
}
return nil
}
@ -98,14 +102,7 @@ func (l *Logger) print(defaultIO io.Writer, s string) {
w := l.GetIO()
if w == nil {
if v := l.getFileByPool(); v != nil {
// 同时输出到文件和终端
// @author zseeker
// @date 2018-05-23
ws := []io.Writer {
v.File(),
os.Stdout,
}
w = io.MultiWriter(ws...)
w = v.File()
defer v.Close()
} else {
w = defaultIO
@ -126,22 +123,22 @@ func (l *Logger) errPrint(s string) {
// 记录调用回溯信息
backtrace := l.backtrace()
if s[len(s) - 1] == byte('\n') {
s = s + backtrace + l.ln
s = s + backtrace + ln
} else {
s = s + l.ln + backtrace + l.ln
s = s + ln + backtrace + ln
}
l.print(os.Stderr, s)
}
// 调用回溯字符串
func (l *Logger) backtrace() string {
backtrace := "Trace:" + l.ln
backtrace := "Trace:" + ln
index := 1
for i := 1; i < 10000; i++ {
if _, cfile, cline, ok := runtime.Caller(i + l.btSkip.Val()); ok {
// 不打印出go源码路径
if !gregx.IsMatchString("^" + runtime.GOROOT(), cfile) {
backtrace += strconv.Itoa(index) + ". " + cfile + ":" + strconv.Itoa(cline) + l.ln
backtrace += strconv.Itoa(index) + ". " + cfile + ":" + strconv.Itoa(cline) + ln
index++
}
} else {
@ -164,11 +161,11 @@ func (l *Logger) Printf(format string, v ...interface{}) {
}
func (l *Logger) Println(v ...interface{}) {
l.stdPrint(fmt.Sprint(v...) + l.ln)
l.stdPrint(fmt.Sprint(v...) + ln)
}
func (l *Logger) Printfln(format string, v ...interface{}) {
l.stdPrint(fmt.Sprintf(format + l.ln, v...))
l.stdPrint(fmt.Sprintf(format + ln, v...))
}
func (l *Logger) Fatal(v ...interface{}) {
@ -182,12 +179,12 @@ func (l *Logger) Fatalf(format string, v ...interface{}) {
}
func (l *Logger) Fatalln(v ...interface{}) {
l.errPrint(fmt.Sprint(v...) + l.ln)
l.errPrint(fmt.Sprint(v...) + ln)
os.Exit(1)
}
func (l *Logger) Fatalfln(format string, v ...interface{}) {
l.errPrint(fmt.Sprintf(format + l.ln, v...))
l.errPrint(fmt.Sprintf(format + ln, v...))
os.Exit(1)
}
@ -204,41 +201,41 @@ func (l *Logger) Panicf(format string, v ...interface{}) {
}
func (l *Logger) Panicln(v ...interface{}) {
s := fmt.Sprint(v...) + l.ln
s := fmt.Sprint(v...) + ln
l.errPrint(s)
panic(s)
}
func (l *Logger) Panicfln(format string, v ...interface{}) {
s := fmt.Sprintf(format + l.ln, v...)
s := fmt.Sprintf(format + ln, v...)
l.errPrint(s)
panic(s)
}
func (l *Logger) Info(v ...interface{}) {
l.stdPrint("[INFO] " + fmt.Sprint(v...) + l.ln)
l.stdPrint("[INFO] " + fmt.Sprint(v...) + ln)
}
func (l *Logger) Debug(v ...interface{}) {
if l.GetDebug() {
l.stdPrint("[DEBU] " + fmt.Sprint(v...) + l.ln)
l.stdPrint("[DEBU] " + fmt.Sprint(v...) + ln)
}
}
func (l *Logger) Notice(v ...interface{}) {
l.errPrint("[NOTI] " + fmt.Sprint(v...) + l.ln)
l.errPrint("[NOTI] " + fmt.Sprint(v...) + ln)
}
func (l *Logger) Warning(v ...interface{}) {
l.errPrint("[WARN] " + fmt.Sprint(v...) + l.ln)
l.errPrint("[WARN] " + fmt.Sprint(v...) + ln)
}
func (l *Logger) Error(v ...interface{}) {
l.errPrint("[ERRO] " + fmt.Sprint(v...) + l.ln)
l.errPrint("[ERRO] " + fmt.Sprint(v...) + ln)
}
func (l *Logger) Critical(v ...interface{}) {
l.errPrint("[CRIT] " + fmt.Sprint(v...) + l.ln)
l.errPrint("[CRIT] " + fmt.Sprint(v...) + ln)
}
func (l *Logger) Infof(format string, v ...interface{}) {
@ -268,27 +265,27 @@ func (l *Logger) Criticalf(format string, v ...interface{}) {
}
func (l *Logger) Infofln(format string, v ...interface{}) {
l.stdPrint("[INFO] " + fmt.Sprintf(format, v...) + l.ln)
l.stdPrint("[INFO] " + fmt.Sprintf(format, v...) + ln)
}
func (l *Logger) Debugfln(format string, v ...interface{}) {
if l.GetDebug() {
l.stdPrint("[DEBU] " + fmt.Sprintf(format, v...) + l.ln)
l.stdPrint("[DEBU] " + fmt.Sprintf(format, v...) + ln)
}
}
func (l *Logger) Noticefln(format string, v ...interface{}) {
l.errPrint("[NOTI] " + fmt.Sprintf(format, v...) + l.ln)
l.errPrint("[NOTI] " + fmt.Sprintf(format, v...) + ln)
}
func (l *Logger) Warningfln(format string, v ...interface{}) {
l.errPrint("[WARN] " + fmt.Sprintf(format, v...) + l.ln)
l.errPrint("[WARN] " + fmt.Sprintf(format, v...) + ln)
}
func (l *Logger) Errorfln(format string, v ...interface{}) {
l.errPrint("[ERRO] " + fmt.Sprintf(format, v...) + l.ln)
l.errPrint("[ERRO] " + fmt.Sprintf(format, v...) + ln)
}
func (l *Logger) Criticalfln(format string, v ...interface{}) {
l.errPrint("[CRIT] " + fmt.Sprintf(format, v...) + l.ln)
l.errPrint("[CRIT] " + fmt.Sprintf(format, v...) + ln)
}