完成基于zinc的日志收集的骨架搭建, 细节待丰富
This commit is contained in:
36
logger.go
36
logger.go
@ -9,7 +9,6 @@ package logger
|
||||
|
||||
import (
|
||||
"git.zhangdeman.cn/zhangdeman/consts"
|
||||
"git.zhangdeman.cn/zhangdeman/logger/instance"
|
||||
"io"
|
||||
"os"
|
||||
|
||||
@ -60,18 +59,9 @@ func NewLogger(inputLoggerLevel consts.LogLevel, splitConfig *RotateLogConfig, o
|
||||
}
|
||||
|
||||
fileHandlerList := []zapcore.Core{
|
||||
zapcore.NewCore(o.Encoder, zapcore.AddSync(loggerWriter), loggerLevelDeal),
|
||||
// zapcore.NewCore(o.Encoder, zapcore.AddSync(&wsWriter{}), loggerLevelDeal), // 设置ws日志输出
|
||||
}
|
||||
|
||||
// 通过配置控制ws logger
|
||||
if o.EnableWsLog {
|
||||
if wsLoggerInstance, err := instance.NewWebsocketLog(o.WsServerProt, o.GinRouter); nil != err {
|
||||
return nil, err
|
||||
} else {
|
||||
// 设置ws日志输出
|
||||
fileHandlerList = append(fileHandlerList, zapcore.NewCore(o.Encoder, zapcore.AddSync(wsLoggerInstance.Writer()), loggerLevelDeal))
|
||||
}
|
||||
zapcore.NewCore(o.Encoder, zapcore.AddSync(loggerWriter), loggerLevelDeal), // 指定的日志输出位置
|
||||
zapcore.NewCore(o.Encoder, zapcore.AddSync(&wsWriter{}), loggerLevelDeal), // 设置ws日志输出
|
||||
// TODO: zinc日志同步
|
||||
}
|
||||
|
||||
// 设置控制台输出
|
||||
@ -149,3 +139,23 @@ func (l *Logger) getWriter() (io.Writer, error) {
|
||||
|
||||
return hook, nil
|
||||
}
|
||||
|
||||
type wsWriter struct {
|
||||
}
|
||||
|
||||
// Write ws的writer
|
||||
//
|
||||
// Author : go_developer@163.com<白茶清欢>
|
||||
//
|
||||
// Date : 22:24 2024/7/22
|
||||
func (w *wsWriter) Write(p []byte) (n int, err error) {
|
||||
if nil == wsLoggerConnect {
|
||||
return 0, nil
|
||||
}
|
||||
p = []byte(" " + string(p))
|
||||
allConnList := wsLoggerConnect.GetCtxList()
|
||||
for _, conn := range allConnList {
|
||||
_ = conn.Session.Write(p)
|
||||
}
|
||||
return 0, nil
|
||||
}
|
||||
|
Reference in New Issue
Block a user