|
|
|
@ -7,7 +7,7 @@
|
|
|
|
|
package log
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"Open_IM/pkg/utils"
|
|
|
|
|
"fmt"
|
|
|
|
|
"github.com/sirupsen/logrus"
|
|
|
|
|
"runtime"
|
|
|
|
|
"strings"
|
|
|
|
@ -23,49 +23,49 @@ func (f *fileHook) Levels() []logrus.Level {
|
|
|
|
|
return logrus.AllLevels
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func (f *fileHook) Fire(entry *logrus.Entry) error {
|
|
|
|
|
entry.Data["FilePath"] = findCaller(6)
|
|
|
|
|
return nil
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//func (f *fileHook) Fire(entry *logrus.Entry) error {
|
|
|
|
|
// entry.Data["FilePath"] = findCaller(6)
|
|
|
|
|
// var s string
|
|
|
|
|
// _, b, c, _ := runtime.Caller(10)
|
|
|
|
|
// i := strings.SplitAfter(b, "/")
|
|
|
|
|
// if len(i) > 3 {
|
|
|
|
|
// s = i[len(i)-3] + i[len(i)-2] + i[len(i)-1] + ":" + utils.IntToString(c)
|
|
|
|
|
// }
|
|
|
|
|
// entry.Data["FilePath"] = s
|
|
|
|
|
// return nil
|
|
|
|
|
//}
|
|
|
|
|
|
|
|
|
|
func (f *fileHook) Fire(entry *logrus.Entry) error {
|
|
|
|
|
var s string
|
|
|
|
|
_, b, c, _ := runtime.Caller(10)
|
|
|
|
|
i := strings.SplitAfter(b, "/")
|
|
|
|
|
if len(i) > 3 {
|
|
|
|
|
s = i[len(i)-3] + i[len(i)-2] + i[len(i)-1] + ":" + utils.IntToString(c)
|
|
|
|
|
func findCaller(skip int) string {
|
|
|
|
|
file := ""
|
|
|
|
|
line := 0
|
|
|
|
|
for i := 0; i < 10; i++ {
|
|
|
|
|
file, line = getCaller(skip + i)
|
|
|
|
|
if !strings.HasPrefix(file, "log") {
|
|
|
|
|
break
|
|
|
|
|
}
|
|
|
|
|
entry.Data["FilePath"] = s
|
|
|
|
|
return nil
|
|
|
|
|
}
|
|
|
|
|
return fmt.Sprintf("%s:%d", file, line)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//func findCaller(skip int) string {
|
|
|
|
|
// file := ""
|
|
|
|
|
// line := 0
|
|
|
|
|
// for i := 0; i < 10; i++ {
|
|
|
|
|
// file, line = getCaller(skip + i)
|
|
|
|
|
// if !strings.HasPrefix(file, "log") {
|
|
|
|
|
// break
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// return fmt.Sprintf("%s:%d", file, line)
|
|
|
|
|
//}
|
|
|
|
|
//
|
|
|
|
|
//func getCaller(skip int) (string, int) {
|
|
|
|
|
// _, file, line, ok := runtime.Caller(skip)
|
|
|
|
|
// if !ok {
|
|
|
|
|
// return "", 0
|
|
|
|
|
// }
|
|
|
|
|
//
|
|
|
|
|
// n := 0
|
|
|
|
|
// for i := len(file) - 1; i > 0; i-- {
|
|
|
|
|
// if file[i] == '/' {
|
|
|
|
|
// n++
|
|
|
|
|
// if n >= 2 {
|
|
|
|
|
// file = file[i+1:]
|
|
|
|
|
// break
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// }
|
|
|
|
|
// return file, line
|
|
|
|
|
//}
|
|
|
|
|
func getCaller(skip int) (string, int) {
|
|
|
|
|
_, file, line, ok := runtime.Caller(skip)
|
|
|
|
|
if !ok {
|
|
|
|
|
return "", 0
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
n := 0
|
|
|
|
|
for i := len(file) - 1; i > 0; i-- {
|
|
|
|
|
if file[i] == '/' {
|
|
|
|
|
n++
|
|
|
|
|
if n >= 2 {
|
|
|
|
|
file = file[i+1:]
|
|
|
|
|
break
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return file, line
|
|
|
|
|
}
|
|
|
|
|