全面替换log为zap

This commit is contained in:
2024-11-08 18:42:13 +08:00
parent 3da1fe761e
commit edb8d30605
17 changed files with 269 additions and 55 deletions

View File

@@ -1,11 +1,11 @@
package audio
import (
"game-driver/pkg/logger"
"github.com/gopxl/beep/v2"
"github.com/gopxl/beep/v2/mp3"
"github.com/gopxl/beep/v2/speaker"
"io"
"log"
)
func PlayBgmMP3(r io.ReadCloser, opts ...beep.LoopOption) (*beep.Ctrl, func() error) {
@@ -16,7 +16,7 @@ func PlayBgmMP3(r io.ReadCloser, opts ...beep.LoopOption) (*beep.Ctrl, func() er
loop2, err := beep.Loop2(streamer, opts...)
if err != nil {
log.Println("循环播放异常: ", err)
logger.Infoln("循环播放异常: ", err)
return nil, streamer.Close
}

View File

@@ -2,12 +2,12 @@ package audio
import (
"context"
"game-driver/pkg/logger"
"github.com/gopxl/beep/v2"
"github.com/gopxl/beep/v2/mp3"
"github.com/gopxl/beep/v2/speaker"
"github.com/gopxl/beep/v2/wav"
"io"
"log"
"time"
)
@@ -18,7 +18,7 @@ func init() {
if err != nil {
panic("扬声器初始化异常: " + err.Error())
}
log.Println("扬声器初始化完成")
logger.Infoln("扬声器初始化完成")
}
func PlayWav(c context.Context, r io.Reader) {

208
pkg/logger/logger.go Normal file
View File

@@ -0,0 +1,208 @@
package logger
import (
"go.uber.org/zap"
"go.uber.org/zap/zapcore"
)
type Logger struct {
zl *zap.Logger
zs zap.SugaredLogger
}
func NewLogger() *Logger {
logger, _ := zap.NewDevelopment(zap.AddCallerSkip(1))
sugar := logger.Sugar()
return &Logger{
zl: logger,
zs: *sugar,
}
}
func (l *Logger) Zap() *zap.Logger {
return l.zl
}
var DefaultLogger = NewLogger()
// Debug logs the provided arguments at [DebugLevel].
// Spaces are added between arguments when neither is a string.
func Debug(args ...interface{}) {
DefaultLogger.zs.Log(zap.DebugLevel, args...)
}
// Info logs the provided arguments at [InfoLevel].
// Spaces are added between arguments when neither is a string.
func Info(args ...interface{}) {
DefaultLogger.zs.Log(zap.InfoLevel, args...)
}
// Warn logs the provided arguments at [WarnLevel].
// Spaces are added between arguments when neither is a string.
func Warn(args ...interface{}) {
DefaultLogger.zs.Log(zap.WarnLevel, args...)
}
// Error logs the provided arguments at [ErrorLevel].
// Spaces are added between arguments when neither is a string.
func Error(args ...interface{}) {
DefaultLogger.zs.Log(zap.ErrorLevel, args...)
}
// DPanic logs the provided arguments at [DPanicLevel].
// In development, the logger then panics. (See [DPanicLevel] for details.)
// Spaces are added between arguments when neither is a string.
func DPanic(args ...interface{}) {
DefaultLogger.zs.Log(zap.DPanicLevel, args...)
}
// Panic constructs a message with the provided arguments and panics.
// Spaces are added between arguments when neither is a string.
func Panic(args ...interface{}) {
DefaultLogger.zs.Log(zap.PanicLevel, args...)
}
// Fatal constructs a message with the provided arguments and calls os.Exit.
// Spaces are added between arguments when neither is a string.
func Fatal(args ...interface{}) {
DefaultLogger.zs.Log(zap.FatalLevel, args...)
}
// Logf formats the message according to the format specifier
// and logs it at provided level.
func Logf(lvl zapcore.Level, template string, args ...interface{}) {
DefaultLogger.zs.Logf(lvl, template, args...)
}
// Debugf formats the message according to the format specifier
// and logs it at [DebugLevel].
func Debugf(template string, args ...interface{}) {
DefaultLogger.zs.Debugf(template, args...)
}
// Infof formats the message according to the format specifier
// and logs it at [InfoLevel].
func Infof(template string, args ...interface{}) {
DefaultLogger.zs.Infof(template, args...)
}
// Warnf formats the message according to the format specifier
// and logs it at [WarnLevel].
func Warnf(template string, args ...interface{}) {
DefaultLogger.zs.Warnf(template, args...)
}
// Errorf formats the message according to the format specifier
// and logs it at [ErrorLevel].
func Errorf(template string, args ...interface{}) {
DefaultLogger.zs.Errorf(template, args...)
}
// DPanicf formats the message according to the format specifier
// and logs it at [DPanicLevel].
// In development, the logger then panics. (See [DPanicLevel] for details.)
func DPanicf(template string, args ...interface{}) {
DefaultLogger.zs.DPanicf(template, args...)
}
// Panicf formats the message according to the format specifier
// and panics.
func Panicf(template string, args ...interface{}) {
DefaultLogger.zs.Panicf(template, args...)
}
// Fatalf formats the message according to the format specifier
// and calls os.Exit.
func Fatalf(template string, args ...interface{}) {
DefaultLogger.zs.Fatalf(template, args...)
}
// Debugw logs a message with some additional context. The variadic key-value
// pairs are treated as they are in With.
//
// When debug-level logging is disabled, this is much faster than
//
// s.With(keysAndValues).Debug(msg)
func Debugw(msg string, keysAndValues ...interface{}) {
DefaultLogger.zs.Debugw(msg, keysAndValues...)
}
// Infow logs a message with some additional context. The variadic key-value
// pairs are treated as they are in With.
func Infow(msg string, keysAndValues ...interface{}) {
DefaultLogger.zs.Infow(msg, keysAndValues...)
}
// Warnw logs a message with some additional context. The variadic key-value
// pairs are treated as they are in With.
func Warnw(msg string, keysAndValues ...interface{}) {
DefaultLogger.zs.Warnw(msg, keysAndValues...)
}
// Errorw logs a message with some additional context. The variadic key-value
// pairs are treated as they are in With.
func Errorw(msg string, keysAndValues ...interface{}) {
DefaultLogger.zs.Errorw(msg, keysAndValues...)
}
// DPanicw logs a message with some additional context. In development, the
// logger then panics. (See DPanicLevel for details.) The variadic key-value
// pairs are treated as they are in With.
func DPanicw(msg string, keysAndValues ...interface{}) {
DefaultLogger.zs.DPanicw(msg, keysAndValues...)
}
// Panicw logs a message with some additional context, then panics. The
// variadic key-value pairs are treated as they are in With.
func Panicw(msg string, keysAndValues ...interface{}) {
DefaultLogger.zs.Panicw(msg, keysAndValues...)
}
// Fatalw logs a message with some additional context, then calls os.Exit. The
// variadic key-value pairs are treated as they are in With.
func Fatalw(msg string, keysAndValues ...interface{}) {
DefaultLogger.zs.Fatalw(msg, keysAndValues...)
}
// Debugln logs a message at [DebugLevel].
// Spaces are always added between arguments.
func Debugln(args ...interface{}) {
DefaultLogger.zs.Debugln(args...)
}
// Infoln logs a message at [InfoLevel].
// Spaces are always added between arguments.
func Infoln(args ...interface{}) {
DefaultLogger.zs.Infoln(args...)
}
// Warnln logs a message at [WarnLevel].
// Spaces are always added between arguments.
func Warnln(args ...interface{}) {
DefaultLogger.zs.Warnln(args...)
}
// Errorln logs a message at [ErrorLevel].
// Spaces are always added between arguments.
func Errorln(args ...interface{}) {
DefaultLogger.zs.Errorln(args...)
}
// DPanicln logs a message at [DPanicLevel].
// In development, the logger then panics. (See [DPanicLevel] for details.)
// Spaces are always added between arguments.
func DPanicln(args ...interface{}) {
DefaultLogger.zs.DPanicln(args...)
}
// Panicln logs a message at [PanicLevel] and panics.
// Spaces are always added between arguments.
func Panicln(args ...interface{}) {
DefaultLogger.zs.Panicln(args...)
}
// Fatalln logs a message at [FatalLevel] and calls os.Exit.
// Spaces are always added between arguments.
func Fatalln(args ...interface{}) {
DefaultLogger.zs.Fatalln(args...)
}

View File

@@ -8,6 +8,7 @@ import (
"game-driver/leaf"
"game-driver/pkg/audio"
"game-driver/pkg/errorsx"
"game-driver/pkg/logger"
"io"
"log"
"time"
@@ -48,7 +49,7 @@ func (tts *AliTTS) Sound(text string) {
if err == nil && buf != nil {
audio.PlayWav(tts.ctx, buf)
} else {
log.Panicln("AliTTS 请求异常: ", err)
logger.Panicln("AliTTS 请求异常: ", err)
}
}

View File

@@ -2,8 +2,8 @@ package utils
import (
"bytes"
"game-driver/pkg/logger"
"io"
"log"
"net/http"
"net/url"
"os"
@@ -32,7 +32,7 @@ func open(u string) io.ReadCloser {
p, _ := strings.CutPrefix(u, "file://")
f, e := os.Open(p)
if e != nil {
log.Printf("音频文件 [%v] 打开错误: %v\n", u, e)
logger.Infof("音频文件 [%v] 打开错误: %v\n", u, e)
return nil
}
return f
@@ -41,7 +41,7 @@ func open(u string) io.ReadCloser {
func get(u string) io.ReadCloser {
resp, e := http.Get(u)
if e != nil {
log.Printf("音频文件 [%v] 下载失败: %v\n", u, e)
logger.Infof("音频文件 [%v] 下载失败: %v\n", u, e)
return nil
}
return resp.Body
@@ -54,14 +54,14 @@ func LinkAudio(link string) (bgm io.ReadCloser) {
}
u, err := url.Parse(link)
if err != nil {
log.Println("音频 URL 解析错误: ", err)
logger.Infoln("音频 URL 解析错误: ", err)
} else {
if u.Scheme == "file" {
bgm = open(link)
} else if u.Scheme == "http" || u.Scheme == "https" {
bgm = get(link)
} else {
log.Printf("不支持的音频文件协议: %v\n", u.String())
logger.Infof("不支持的音频文件协议: %v\n", u.String())
return
}
bgm = toSeeker(bgm)

View File

@@ -1,8 +1,8 @@
package utils
import (
"game-driver/pkg/logger"
"io"
"log"
"net/http"
"net/url"
"os"
@@ -17,7 +17,7 @@ func LinkVideo(link string) (local string) {
}
u, err := url.Parse(link)
if err != nil {
log.Println("音频 URL 解析错误: ", err)
logger.Infoln("音频 URL 解析错误: ", err)
} else {
if u.Scheme == "file" {
local, _ = strings.CutPrefix(link, "file://")
@@ -26,12 +26,12 @@ func LinkVideo(link string) (local string) {
tmpLocal := path.Join(os.TempDir(), path.Base(p))
err = Download(link, tmpLocal)
if err != nil {
log.Println("音频文件下载失败: ", err)
logger.Infoln("音频文件下载失败: ", err)
return
}
local = tmpLocal
} else {
log.Printf("不支持的视频链接协议: %v\n", u.String())
logger.Infof("不支持的视频链接协议: %v\n", u.String())
return
}
}

View File

@@ -3,15 +3,15 @@ package video
import (
"bufio"
"context"
"game-driver/pkg/logger"
"io"
"log"
"os/exec"
"sync"
)
func Play(ctx context.Context, file string) error {
if file == "" {
log.Println("video file is empty")
logger.Infoln("video file is empty")
return nil
}
cmd := exec.CommandContext(ctx, "ffplay", "-autoexit", "-fs", file)
@@ -39,7 +39,7 @@ func Play(ctx context.Context, file string) error {
}
break
}
log.Println(string(line))
logger.Infoln(string(line))
}
}
}()