mirror of
https://gitee.com/xiangheng/x_admin.git
synced 2026-04-22 22:57:15 +08:00
优化定时任务,日志输出
This commit is contained in:
@@ -320,7 +320,11 @@ const handleSubmit = async () => {
|
||||
// data.perms = ''
|
||||
// }
|
||||
|
||||
mode.value == 'edit' ? await menuEdit(data) : await menuAdd(data)
|
||||
if (mode.value == 'edit') {
|
||||
await menuEdit(data)
|
||||
} else {
|
||||
await menuAdd(data)
|
||||
}
|
||||
popupRef.value?.close()
|
||||
feedback.msgSuccess('操作成功')
|
||||
emit('success')
|
||||
|
||||
+2
-1
@@ -60,4 +60,5 @@ main
|
||||
# air
|
||||
tmp
|
||||
dist/
|
||||
uploads/
|
||||
uploads/
|
||||
./logs
|
||||
@@ -73,11 +73,11 @@ func (tm *CronManager) AddTask(taskID, CronExpr string, task cornService.Task) e
|
||||
lock := util.NewRedisLock(lockKey, task.LockTTL) // 锁自动过期 10s
|
||||
|
||||
if !lock.Lock() {
|
||||
core.Logger.Info("任务加锁失败:%s: %s", task.TaskCode, task.TaskDesc)
|
||||
core.Logger.Infof("任务加锁失败:%s: %s", task.TaskCode, task.TaskDesc)
|
||||
return
|
||||
}
|
||||
defer func() {
|
||||
core.Logger.Info("任务解锁:%s: %s", task.TaskCode, task.TaskDesc)
|
||||
core.Logger.Infof("任务解锁:%s: %s", task.TaskCode, task.TaskDesc)
|
||||
// 解锁失败时,记录日志
|
||||
if err := lock.Unlock(); err != nil {
|
||||
core.Logger.Error("任务解锁失败:%s: %s, err: %v", task.TaskCode, task.TaskDesc, err)
|
||||
|
||||
@@ -14,7 +14,7 @@ var AppConfig = appConfig{
|
||||
AppName: "x_admin",
|
||||
Version: "0.0.0",
|
||||
Port: 8080,
|
||||
GinMode: "",
|
||||
GinMode: "release",
|
||||
OssDomain: "",
|
||||
DisallowModify: false,
|
||||
}
|
||||
|
||||
@@ -50,10 +50,10 @@ func loadConfig(config config) config {
|
||||
}
|
||||
|
||||
func init() {
|
||||
fmt.Println("AppConfig:", AppConfig)
|
||||
fmt.Println("DBConfig:", DBConfig)
|
||||
fmt.Println("RedisConfig:", RedisConfig)
|
||||
fmt.Println("FileConfig:", FileConfig)
|
||||
fmt.Println("GeTuiConfig:", GeTuiConfig)
|
||||
fmt.Println("EmailConfig:", EmailConfig)
|
||||
fmt.Printf("AppConfig: %+v\n", AppConfig)
|
||||
fmt.Printf("DBConfig: %+v\n", DBConfig)
|
||||
fmt.Printf("RedisConfig: %+v\n", RedisConfig)
|
||||
fmt.Printf("FileConfig: %+v\n", FileConfig)
|
||||
fmt.Printf("GeTuiConfig: %+v\n", GeTuiConfig)
|
||||
fmt.Printf("EmailConfig: %+v\n", EmailConfig)
|
||||
}
|
||||
|
||||
+35
-8
@@ -1,22 +1,49 @@
|
||||
package core
|
||||
|
||||
import (
|
||||
"os"
|
||||
"x_admin/config"
|
||||
|
||||
"go.uber.org/zap"
|
||||
"go.uber.org/zap/zapcore"
|
||||
"gopkg.in/natefinch/lumberjack.v2"
|
||||
)
|
||||
|
||||
var Logger = initLogger()
|
||||
|
||||
// initLogger 初始化zap日志
|
||||
func initLogger() *zap.SugaredLogger {
|
||||
zap.NewDevelopmentConfig()
|
||||
cfg := zap.NewProductionEncoderConfig()
|
||||
cfg.EncodeTime = zapcore.ISO8601TimeEncoder
|
||||
cfg.EncodeLevel = zapcore.CapitalLevelEncoder
|
||||
cfg.FunctionKey = "F"
|
||||
core := zapcore.NewCore(zapcore.NewConsoleEncoder(cfg), zapcore.AddSync(os.Stderr), zapcore.InfoLevel)
|
||||
writeSyncer := getLogWriter()
|
||||
var encoder zapcore.Encoder
|
||||
if config.AppConfig.GinMode == "debug" {
|
||||
encoder = getDevEncoder()
|
||||
} else {
|
||||
encoder = getProductionEncoder()
|
||||
}
|
||||
core := zapcore.NewCore(encoder, writeSyncer, zapcore.DebugLevel)
|
||||
|
||||
logger := zap.New(core, zap.AddCaller())
|
||||
|
||||
return logger.Sugar()
|
||||
}
|
||||
func getDevEncoder() zapcore.Encoder {
|
||||
encoderConfig := zap.NewDevelopmentEncoderConfig()
|
||||
encoderConfig.EncodeTime = zapcore.ISO8601TimeEncoder
|
||||
encoderConfig.EncodeLevel = zapcore.CapitalLevelEncoder
|
||||
return zapcore.NewConsoleEncoder(encoderConfig)
|
||||
}
|
||||
|
||||
func getProductionEncoder() zapcore.Encoder {
|
||||
encoderConfig := zap.NewProductionEncoderConfig()
|
||||
encoderConfig.EncodeTime = zapcore.ISO8601TimeEncoder
|
||||
encoderConfig.EncodeLevel = zapcore.CapitalLevelEncoder
|
||||
return zapcore.NewConsoleEncoder(encoderConfig)
|
||||
}
|
||||
func getLogWriter() zapcore.WriteSyncer {
|
||||
lumberJackLogger := &lumberjack.Logger{
|
||||
Filename: "./logs/like_admin.log",
|
||||
MaxSize: 10,
|
||||
MaxBackups: 5,
|
||||
MaxAge: 30,
|
||||
Compress: false,
|
||||
}
|
||||
return zapcore.AddSync(lumberJackLogger)
|
||||
}
|
||||
|
||||
@@ -103,5 +103,6 @@ require (
|
||||
golang.org/x/sys v0.39.0 // indirect
|
||||
golang.org/x/tools v0.39.0 // indirect
|
||||
google.golang.org/protobuf v1.36.10 // indirect
|
||||
gopkg.in/natefinch/lumberjack.v2 v2.2.1 // indirect
|
||||
gopkg.in/yaml.v3 v3.0.1 // indirect
|
||||
)
|
||||
|
||||
@@ -238,6 +238,8 @@ google.golang.org/protobuf v1.36.10/go.mod h1:HTf+CrKn2C3g5S8VImy6tdcUvCska2kB7j
|
||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
|
||||
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
|
||||
gopkg.in/natefinch/lumberjack.v2 v2.2.1 h1:bBRl1b0OH9s/DuPhuXpNl+VtCaJXFZ5/uEFST95x9zc=
|
||||
gopkg.in/natefinch/lumberjack.v2 v2.2.1/go.mod h1:YD8tP3GAjkrDg1eZH7EGmyESg/lsYskCTPBJVb9jqSc=
|
||||
gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
|
||||
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
|
||||
|
||||
@@ -0,0 +1,33 @@
|
||||
2026-01-17T02:50:15.008+0800 INFO corn/corn.go:80 任务解锁:onlineCount: 广播当前在线用户数
|
||||
2026-01-17T02:50:20.001+0800 INFO corn/corn.go:80 任务解锁:onlineCount: 广播当前在线用户数
|
||||
2026-01-17T02:50:20.005+0800 INFO corn/init.go:74 拉取到的任务数量: 1
|
||||
2026-01-17T02:50:25.000+0800 INFO cornService/task.go:38 执行示例任务: exampleTask
|
||||
2026-01-17T02:50:25.002+0800 INFO corn/corn.go:80 任务解锁:onlineCount: 广播当前在线用户数
|
||||
2026-01-17T02:50:30.001+0800 INFO corn/corn.go:80 任务解锁:onlineCount: 广播当前在线用户数
|
||||
2026-01-17T02:50:30.002+0800 INFO corn/init.go:74 拉取到的任务数量: 1
|
||||
2026-01-17T02:50:30.152+0800 INFO corn/corn.go:76 任务加锁失败:exampleTask: 这是一个示例任务,每分钟执行一次
|
||||
2026-01-17T02:50:32.000+0800 INFO corn/corn.go:80 任务解锁:exampleTask: 这是一个示例任务,每分钟执行一次
|
||||
2026-01-17T02:50:35.003+0800 INFO corn/corn.go:80 任务解锁:onlineCount: 广播当前在线用户数
|
||||
2026-01-17T02:50:35.039+0800 INFO cornService/task.go:38 执行示例任务: exampleTask
|
||||
2026-01-17T02:50:40.001+0800 INFO corn/corn.go:80 任务解锁:onlineCount: 广播当前在线用户数
|
||||
2026-01-17T02:50:40.001+0800 INFO corn/init.go:74 拉取到的任务数量: 1
|
||||
2026-01-17T02:50:40.152+0800 INFO corn/corn.go:76 任务加锁失败:exampleTask: 这是一个示例任务,每分钟执行一次
|
||||
2026-01-17T02:50:42.039+0800 INFO corn/corn.go:80 任务解锁:exampleTask: 这是一个示例任务,每分钟执行一次
|
||||
2026-01-17T02:50:45.001+0800 INFO corn/corn.go:80 任务解锁:onlineCount: 广播当前在线用户数
|
||||
2026-01-17T02:50:45.001+0800 INFO cornService/task.go:38 执行示例任务: exampleTask
|
||||
2026-01-17T02:50:50.000+0800 INFO corn/corn.go:80 任务解锁:onlineCount: 广播当前在线用户数
|
||||
2026-01-17T02:50:50.001+0800 INFO corn/init.go:74 拉取到的任务数量: 1
|
||||
2026-01-17T02:50:50.153+0800 INFO corn/corn.go:76 任务加锁失败:exampleTask: 这是一个示例任务,每分钟执行一次
|
||||
2026-01-17T02:50:52.002+0800 INFO corn/corn.go:80 任务解锁:exampleTask: 这是一个示例任务,每分钟执行一次
|
||||
2026-01-17T02:50:55.000+0800 INFO cornService/task.go:38 执行示例任务: exampleTask
|
||||
2026-01-17T02:50:55.002+0800 INFO corn/corn.go:80 任务解锁:onlineCount: 广播当前在线用户数
|
||||
2026-01-17T02:51:00.000+0800 INFO corn/corn.go:80 任务解锁:onlineCount: 广播当前在线用户数
|
||||
2026-01-17T02:51:00.001+0800 INFO corn/init.go:74 拉取到的任务数量: 1
|
||||
2026-01-17T02:51:00.152+0800 INFO corn/corn.go:76 任务加锁失败:exampleTask: 这是一个示例任务,每分钟执行一次
|
||||
2026-01-17T02:51:02.001+0800 INFO corn/corn.go:80 任务解锁:exampleTask: 这是一个示例任务,每分钟执行一次
|
||||
2026-01-17T02:51:05.001+0800 INFO corn/corn.go:80 任务解锁:onlineCount: 广播当前在线用户数
|
||||
2026-01-17T02:51:05.001+0800 INFO cornService/task.go:38 执行示例任务: exampleTask
|
||||
2026-01-17T02:51:10.001+0800 INFO corn/corn.go:80 任务解锁:onlineCount: 广播当前在线用户数
|
||||
2026-01-17T02:51:10.002+0800 INFO corn/init.go:74 拉取到的任务数量: 1
|
||||
2026-01-17T02:51:10.161+0800 INFO corn/corn.go:76 任务加锁失败:exampleTask: 这是一个示例任务,每分钟执行一次
|
||||
2026-01-17T02:51:12.002+0800 INFO corn/corn.go:80 任务解锁:exampleTask: 这是一个示例任务,每分钟执行一次
|
||||
@@ -109,9 +109,9 @@ func RecordLog(title string, reqTypes ...requestType) gin.HandlerFunc {
|
||||
}()
|
||||
// 执行方法
|
||||
c.Next()
|
||||
if config.AppConfig.GinMode == "debug" {
|
||||
return
|
||||
}
|
||||
// if config.AppConfig.GinMode == "debug" {
|
||||
// return
|
||||
// }
|
||||
if len(c.Errors) > 0 {
|
||||
errStr = c.Errors.String()
|
||||
status = 2
|
||||
|
||||
Reference in New Issue
Block a user