ws logger 更改为全局注册

This commit is contained in:
白茶清欢 2024-07-23 15:38:23 +08:00
parent dab0b5e0b9
commit d978913b67
3 changed files with 38 additions and 34 deletions

View File

@ -237,17 +237,6 @@ type OptionLogger struct {
// SetLoggerOptionFunc 设置日志配置 // SetLoggerOptionFunc 设置日志配置
type SetLoggerOptionFunc func(o *OptionLogger) type SetLoggerOptionFunc func(o *OptionLogger)
// WithWsLogger 设置ws管理实例
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 22:11 2024/7/22
func WithWsLogger(connect storage.IConnection) SetLoggerOptionFunc {
return func(o *OptionLogger) {
o.WsLoggerConnect = connect
}
}
// WithCaller 打开文件行号记录 // WithCaller 打开文件行号记录
func WithCaller() SetLoggerOptionFunc { func WithCaller() SetLoggerOptionFunc {
return func(o *OptionLogger) { return func(o *OptionLogger) {

View File

@ -18,6 +18,26 @@ import (
"go.uber.org/zap/zapcore" "go.uber.org/zap/zapcore"
) )
var wsLoggerConnect storage.IConnection // ws 日志连接管理实例
// SetWsLoggConnect 设置ws connect
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 15:20 2024/7/23
func SetWsLoggConnect(connect storage.IConnection) {
wsLoggerConnect = connect
}
// GetWsLoggConnect 获取ws连接
//
// Author : go_developer@163.com<白茶清欢>
//
// Date : 15:34 2024/7/23
func GetWsLoggConnect(connect storage.IConnection) {
wsLoggerConnect = connect
}
// InputLogConfig 输入的日志配置 // InputLogConfig 输入的日志配置
// //
// Author : go_developer@163.com<白茶清欢> // Author : go_developer@163.com<白茶清欢>
@ -39,7 +59,6 @@ type InputLogConfig struct {
UseShortFile bool `json:"use_short_file" yaml:"use_short_file"` // 是否使用短文件格式 UseShortFile bool `json:"use_short_file" yaml:"use_short_file"` // 是否使用短文件格式
CallerSkip int `json:"caller_skip" yaml:"caller_skip"` // 日志记录的文件跳过多少层 CallerSkip int `json:"caller_skip" yaml:"caller_skip"` // 日志记录的文件跳过多少层
MaxAge int `json:"max_age" yaml:"max_age"` // 日志最长保存时间, 单位 : 秒 MaxAge int `json:"max_age" yaml:"max_age"` // 日志最长保存时间, 单位 : 秒
WsLoggerConnect storage.IConnection `json:"-"` // ws 日志连接管理实例
} }
// GetLogInstanceFromInputConfig 从输入配置获取日志实例 // GetLogInstanceFromInputConfig 从输入配置获取日志实例
@ -56,7 +75,6 @@ func GetLogInstanceFromInputConfig(logConf *InputLogConfig) (*zap.Logger, error)
WithCaller(), WithCaller(),
WithUseJsonFormat(logConf.UseJson), WithUseJsonFormat(logConf.UseJson),
WithShortCaller(logConf.UseShortFile), WithShortCaller(logConf.UseShortFile),
WithWsLogger(logConf.WsLoggerConnect),
} }
if logConf.Console { if logConf.Console {
logConfList = append(logConfList, WithConsoleOutput()) logConfList = append(logConfList, WithConsoleOutput())

View File

@ -11,8 +11,6 @@ import (
"io" "io"
"os" "os"
"git.zhangdeman.cn/zhangdeman/websocket/storage"
"github.com/pkg/errors" "github.com/pkg/errors"
"go.uber.org/zap" "go.uber.org/zap"
@ -61,7 +59,7 @@ func NewLogger(inputLoggerLevel string, splitConfig *RotateLogConfig, optionFunc
fileHandlerList := []zapcore.Core{ fileHandlerList := []zapcore.Core{
zapcore.NewCore(o.Encoder, zapcore.AddSync(loggerWriter), loggerLevelDeal), zapcore.NewCore(o.Encoder, zapcore.AddSync(loggerWriter), loggerLevelDeal),
zapcore.NewCore(o.Encoder, zapcore.AddSync(&wsWriter{o.WsLoggerConnect}), loggerLevelDeal), // 设置ws日志输出 zapcore.NewCore(o.Encoder, zapcore.AddSync(&wsWriter{}), loggerLevelDeal), // 设置ws日志输出
} }
// 设置控制台输出 // 设置控制台输出
@ -141,7 +139,6 @@ func (l *Logger) getWriter() (io.Writer, error) {
} }
type wsWriter struct { type wsWriter struct {
connection storage.IConnection
} }
// Write ws的writer // Write ws的writer
@ -150,11 +147,11 @@ type wsWriter struct {
// //
// Date : 22:24 2024/7/22 // Date : 22:24 2024/7/22
func (w *wsWriter) Write(p []byte) (n int, err error) { func (w *wsWriter) Write(p []byte) (n int, err error) {
if nil == w.connection { if nil == wsLoggerConnect {
return 0, nil return 0, nil
} }
allConnList := w.connection.GetCtxList() allConnList := wsLoggerConnect.GetCtxList()
for _, conn := range allConnList { for _, conn := range allConnList {
_ = conn.Session.Write(p) _ = conn.Session.Write(p)
} }