|
@@ -2,6 +2,7 @@
|
|
|
package logger
|
|
package logger
|
|
|
|
|
|
|
|
import (
|
|
import (
|
|
|
|
|
+ "encoding/json"
|
|
|
"fmt"
|
|
"fmt"
|
|
|
"os"
|
|
"os"
|
|
|
"strings"
|
|
"strings"
|
|
@@ -101,4 +102,113 @@ func getLogWriter(filename string, maxSize, maxBackup, maxAge int, compress bool
|
|
|
// 生产环境只记录文件
|
|
// 生产环境只记录文件
|
|
|
return zapcore.AddSync(lumberJackLogger)
|
|
return zapcore.AddSync(lumberJackLogger)
|
|
|
}
|
|
}
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+// Dump 调试专用, 不会中断程序,会在终端打印 warning 信息。
|
|
|
|
|
+// 第一个参数会使用 json.Marshal 进行渲染,第二个参数可选
|
|
|
|
|
+// logger.Dump(user.User{Name: "test"})
|
|
|
|
|
+// logger.Dump(user.User{Name: "test"}, "用户信息")
|
|
|
|
|
+func Dump(v any, msg ...string) {
|
|
|
|
|
+ valueStr := jsonString(v)
|
|
|
|
|
+ if len(msg) > 0 {
|
|
|
|
|
+ Logger.Warn("Dump", zap.String(msg[0], valueStr))
|
|
|
|
|
+ } else {
|
|
|
|
|
+ Logger.Warn("Dump", zap.String("data", valueStr))
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+// LogIf 当 err != nill 时记录 error 等级的日志
|
|
|
|
|
+func LogIf(err error) {
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ Logger.Error("Error Occurred: ", zap.Error(err))
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+// LogWarnIf 当 err != nill 时记录 warning 等级的日志
|
|
|
|
|
+func LogWarnIf(err error) {
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ Logger.Warn("Error Occurred: ", zap.Error(err))
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+// LogInfoIf 当 err != nill 时记录 info 等级的日志
|
|
|
|
|
+func LogInfoIf(err error) {
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ Logger.Info("Error Occurred: ", zap.Error(err))
|
|
|
|
|
+ }
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+// Debug 调试专用, 不会中断程序
|
|
|
|
|
+// logger.Debug("Database", zap.String("sql", sql))
|
|
|
|
|
+func Debug(msg string, fields ...zap.Field) {
|
|
|
|
|
+ Logger.Debug(msg, fields...)
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+// Info 信息级别
|
|
|
|
|
+func Info(msg string, fields...zap.Field) {
|
|
|
|
|
+ Logger.Info(msg, fields...)
|
|
|
|
|
+}
|
|
|
|
|
+// Warn 警告级别
|
|
|
|
|
+func Warn(msg string, fields...zap.Field) {
|
|
|
|
|
+ Logger.Warn(msg, fields...)
|
|
|
|
|
+}
|
|
|
|
|
+// Error 错误级别
|
|
|
|
|
+func Error(msg string, fields...zap.Field) {
|
|
|
|
|
+ Logger.Error(msg, fields...)
|
|
|
|
|
+}
|
|
|
|
|
+// Fatal 致命级别
|
|
|
|
|
+func Fatal(msg string, fields...zap.Field) {
|
|
|
|
|
+ Logger.Fatal(msg, fields...)
|
|
|
|
|
+}
|
|
|
|
|
+// DebugString 记录一条字符串类型的 debug 日志
|
|
|
|
|
+// logger.DebugString("User", "name", "John")
|
|
|
|
|
+func DebugString(modeleName, name, msg string) {
|
|
|
|
|
+ Logger.Debug(modeleName, zap.String(name, msg))
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+func InfoString(moduleName, name, msg string) {
|
|
|
|
|
+ Logger.Info(moduleName, zap.String(name, msg))
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func WarnString(moduleName, name, msg string) {
|
|
|
|
|
+ Logger.Warn(moduleName, zap.String(name, msg))
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func ErrorString(moduleName, name, msg string) {
|
|
|
|
|
+ Logger.Error(moduleName, zap.String(name, msg))
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func FatalString(moduleName, name, msg string) {
|
|
|
|
|
+ Logger.Fatal(moduleName, zap.String(name, msg))
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+// DebugJSON 记录对象类型的 debug 日志,使用 json.Marshal 进行编码。调用示例:
|
|
|
|
|
+// logger.DebugJSON("Auth", "读取登录用户", auth.CurrentUser())
|
|
|
|
|
+func DebugJSON(moduleName, name string, value any) {
|
|
|
|
|
+ Logger.Debug(moduleName, zap.String(name, jsonString(value)))
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func InfoJSON(moduleName, name string, value any) {
|
|
|
|
|
+ Logger.Info(moduleName, zap.String(name, jsonString(value)))
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func WarnJSON(moduleName, name string, value any) {
|
|
|
|
|
+ Logger.Warn(moduleName, zap.String(name, jsonString(value)))
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func ErrorJSON(moduleName, name string, value any) {
|
|
|
|
|
+ Logger.Error(moduleName, zap.String(name, jsonString(value)))
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func FatalJSON(moduleName, name string, value any) {
|
|
|
|
|
+ Logger.Fatal(moduleName, zap.String(name, jsonString(value)))
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func jsonString(v any) string {
|
|
|
|
|
+ b,err := json.Marshal(v)
|
|
|
|
|
+ if err != nil {
|
|
|
|
|
+ Logger.Error("Logger", zap.String("json.Marshal error", err.Error()))
|
|
|
|
|
+ }
|
|
|
|
|
+ return string(b)
|
|
|
}
|
|
}
|