32 lines
645 B
Go
32 lines
645 B
Go
package common
|
||
|
||
import (
|
||
"blazing/cool"
|
||
"blazing/modules/base/service"
|
||
|
||
"github.com/gogf/gf/v2/os/glog"
|
||
)
|
||
|
||
// MyWriter 自定义日志写入器,用于逻辑服日志转发。
|
||
type MyWriter struct {
|
||
logger *glog.Logger // 底层 glog 实例。
|
||
user uint32 // 关联的玩家 ID。
|
||
}
|
||
|
||
// Write 实现 io.Writer,并将日志写入系统日志与底层 logger。
|
||
func (w *MyWriter) Write(p []byte) (n int, err error) {
|
||
var (
|
||
s = string(p)
|
||
)
|
||
|
||
service.NewBaseSysLogService().RecordLog(w.user, s)
|
||
return w.logger.Write(p)
|
||
}
|
||
|
||
func init() {
|
||
cool.Logger.SetWriter(&MyWriter{
|
||
logger: glog.New(),
|
||
})
|
||
cool.Logger.SetAsync(true)
|
||
}
|