支持ws日志实现, 待精细化配置控制

This commit is contained in:
2025-04-25 18:34:24 +08:00
parent 688d6b7446
commit f5d7f54a55
2 changed files with 130 additions and 21 deletions

View File

@ -9,6 +9,7 @@ package logger
import (
"git.zhangdeman.cn/zhangdeman/consts"
"git.zhangdeman.cn/zhangdeman/logger/instance"
"io"
"os"
@ -60,7 +61,15 @@ 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日志输出
// zapcore.NewCore(o.Encoder, zapcore.AddSync(&wsWriter{}), loggerLevelDeal), // 设置ws日志输出
}
// TODO: 通过配置控制ws logger
if wsLoggerInstance, err := instance.NewWebsocketLog(80, nil); nil != err {
return nil, err
} else {
// 设置ws日志输出
fileHandlerList = append(fileHandlerList, zapcore.NewCore(o.Encoder, zapcore.AddSync(wsLoggerInstance.Writer()), loggerLevelDeal))
}
// 设置控制台输出
@ -138,23 +147,3 @@ 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
}