mirror of
https://github.com/openimsdk/open-im-server.git
synced 2026-05-06 18:15:59 +08:00
log
This commit is contained in:
+121
-1
@@ -2,7 +2,9 @@ package log
|
||||
|
||||
import (
|
||||
"Open_IM/pkg/common/config"
|
||||
"Open_IM/pkg/common/trace_log"
|
||||
"bufio"
|
||||
"context"
|
||||
|
||||
//"bufio"
|
||||
"fmt"
|
||||
@@ -16,6 +18,7 @@ import (
|
||||
)
|
||||
|
||||
var logger *Logger
|
||||
var ctxLogger *Logger
|
||||
|
||||
type Logger struct {
|
||||
*logrus.Logger
|
||||
@@ -24,12 +27,35 @@ type Logger struct {
|
||||
|
||||
func init() {
|
||||
logger = loggerInit("")
|
||||
|
||||
ctxLogger = ctxLoggerInit("")
|
||||
}
|
||||
|
||||
func NewPrivateLog(moduleName string) {
|
||||
logger = loggerInit(moduleName)
|
||||
}
|
||||
|
||||
func ctxLoggerInit(moduleName string) *Logger {
|
||||
var ctxLogger = logrus.New()
|
||||
ctxLogger.SetLevel(logrus.Level(config.Config.Log.RemainLogLevel))
|
||||
src, err := os.OpenFile(os.DevNull, os.O_APPEND|os.O_WRONLY, os.ModeAppend)
|
||||
if err != nil {
|
||||
panic(err.Error())
|
||||
}
|
||||
writer := bufio.NewWriter(src)
|
||||
ctxLogger.SetOutput(writer)
|
||||
ctxLogger.SetFormatter(&logrus.JSONFormatter{
|
||||
TimestampFormat: "2006-01-02 15:04:05.000",
|
||||
DataKey: "args",
|
||||
FieldMap: nil,
|
||||
CallerPrettyfier: nil,
|
||||
PrettyPrint: false,
|
||||
})
|
||||
return &Logger{
|
||||
ctxLogger,
|
||||
os.Getpid(),
|
||||
}
|
||||
}
|
||||
|
||||
func loggerInit(moduleName string) *Logger {
|
||||
var logger = logrus.New()
|
||||
//All logs will be printed
|
||||
@@ -44,11 +70,13 @@ func loggerInit(moduleName string) *Logger {
|
||||
logger.SetOutput(writer)
|
||||
// logger.SetOutput(os.Stdout)
|
||||
//Log Console Print Style Setting
|
||||
|
||||
logger.SetFormatter(&nested.Formatter{
|
||||
TimestampFormat: "2006-01-02 15:04:05.000",
|
||||
HideKeys: false,
|
||||
FieldsOrder: []string{"PID", "FilePath", "OperationID"},
|
||||
})
|
||||
|
||||
//File name and line number display hook
|
||||
logger.AddHook(newFileHook())
|
||||
|
||||
@@ -200,3 +228,95 @@ func NewWarn(OperationID string, args ...interface{}) {
|
||||
"PID": logger.Pid,
|
||||
}).Warnln(args)
|
||||
}
|
||||
|
||||
func ShowLog(ctx context.Context) {
|
||||
t := ctx.Value(trace_log.TraceLogKey).(*trace_log.ApiInfo)
|
||||
OperationID := trace_log.GetOperationID(ctx)
|
||||
if ctx.Value(trace_log.TraceLogKey).(*trace_log.ApiInfo).GinCtx != nil {
|
||||
ctxLogger.WithFields(logrus.Fields{
|
||||
"OperationID": OperationID,
|
||||
"PID": ctxLogger.Pid,
|
||||
}).Infoln("api: ", t.ApiName)
|
||||
} else {
|
||||
ctxLogger.WithFields(logrus.Fields{
|
||||
"OperationID": OperationID,
|
||||
"PID": ctxLogger.Pid,
|
||||
}).Infoln("rpc: ", t.ApiName)
|
||||
}
|
||||
for _, v := range *t.Funcs {
|
||||
if v.Err != nil {
|
||||
ctxLogger.WithFields(logrus.Fields{
|
||||
"OperationID": OperationID,
|
||||
"PID": ctxLogger.Pid,
|
||||
"FilePath": v.File,
|
||||
}).Errorln("func: ", v.FuncName, " args: ", v.Args, v.Err.Error())
|
||||
} else {
|
||||
switch v.LogLevel {
|
||||
case logrus.InfoLevel:
|
||||
ctxLogger.WithFields(logrus.Fields{
|
||||
"OperationID": OperationID,
|
||||
"PID": ctxLogger.Pid,
|
||||
"FilePath": v.File,
|
||||
}).Infoln("func: ", v.FuncName, " args: ", v.Args)
|
||||
case logrus.DebugLevel:
|
||||
ctxLogger.WithFields(logrus.Fields{
|
||||
"OperationID": OperationID,
|
||||
"PID": ctxLogger.Pid,
|
||||
"FilePath": v.File,
|
||||
}).Debugln("func: ", v.FuncName, " args: ", v.Args)
|
||||
case logrus.WarnLevel:
|
||||
ctxLogger.WithFields(logrus.Fields{
|
||||
"OperationID": OperationID,
|
||||
"PID": ctxLogger.Pid,
|
||||
"FilePath": v.File,
|
||||
}).Warnln("func: ", v.FuncName, " args: ", v.Args)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func InfoWithCtx(ctx context.Context, args ...interface{}) {
|
||||
t := ctx.Value(trace_log.TraceLogKey).(*trace_log.ApiInfo)
|
||||
OperationID := trace_log.GetOperationID(ctx)
|
||||
for _, v := range *t.Funcs {
|
||||
logger.WithFields(logrus.Fields{
|
||||
"OperationID": OperationID,
|
||||
"PID": logger.Pid,
|
||||
}).Infoln(v.Args, args)
|
||||
}
|
||||
}
|
||||
|
||||
func DebugWithCtx(ctx context.Context, args ...interface{}) {
|
||||
t := ctx.Value(trace_log.TraceLogKey).(*trace_log.ApiInfo)
|
||||
OperationID := trace_log.GetOperationID(ctx)
|
||||
for _, v := range *t.Funcs {
|
||||
logger.WithFields(logrus.Fields{
|
||||
"OperationID": OperationID,
|
||||
"PID": logger.Pid,
|
||||
}).Debugln(v.Args, args)
|
||||
}
|
||||
}
|
||||
|
||||
func ErrorWithCtx(ctx context.Context, args ...interface{}) {
|
||||
t := ctx.Value(trace_log.TraceLogKey).(*trace_log.ApiInfo)
|
||||
OperationID := trace_log.GetOperationID(ctx)
|
||||
for _, v := range *t.Funcs {
|
||||
if v.Err != nil {
|
||||
logger.WithFields(logrus.Fields{
|
||||
"OperationID": OperationID,
|
||||
"PID": logger.Pid,
|
||||
}).Errorln(v.Err, v.Args, args)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func WarnWithCtx(ctx context.Context, args ...interface{}) {
|
||||
t := ctx.Value(trace_log.TraceLogKey).(*trace_log.ApiInfo)
|
||||
OperationID := trace_log.GetOperationID(ctx)
|
||||
for _, v := range *t.Funcs {
|
||||
logger.WithFields(logrus.Fields{
|
||||
"OperationID": OperationID,
|
||||
"PID": logger.Pid,
|
||||
}).Warnln(v.Args, args)
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user