| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- package jobs
- import (
- "IotAdmin/core/logger"
- "IotAdmin/core/sdk/config"
- cLog "IotAdmin/core/sdk/pkg/logger"
- "IotAdmin/core/tools/writer"
- "fmt"
- "log"
- "sync"
- )
- var jobLogger *JobLogger
- var once sync.Once
- type JobLogger struct {
- *logger.Helper
- }
- func init() {
- GetJobLogger()
- }
- func GetJobLogger() *JobLogger {
- once.Do(func() {
- loggerHelper := setupJobLogger()
- jobLogger = &JobLogger{
- loggerHelper,
- }
- })
- return jobLogger
- }
- // setupJobLogger 设置设备日志组件
- func setupJobLogger() *logger.Helper {
- path := getJobLogPath()
- logCap := config.LoggerConfig.Cap
- if logCap == 0 {
- logCap = 1024
- }
- output, err := writer.NewFileWriter(
- writer.WithPath(path),
- writer.WithCap(logCap<<10),
- writer.WithSuffix("log"),
- )
- if err != nil {
- log.Printf("job logger setup error: %s \r\n", err.Error())
- }
- level := logger.DebugLevel
- if config.ApplicationConfig.Mode == "prod" {
- level = logger.InfoLevel
- }
- return logger.NewHelper(logger.NewLogger(logger.WithLevel(level), logger.WithOutput(output), logger.WithName("JOB")))
- }
- func getJobLogPath() string {
- path := config.LoggerConfig.Path
- if path == "" {
- path = "_logs/"
- } else if path[len(path)-1] != '/' {
- path += "/"
- }
- path += "jobs"
- return path
- }
- func CleanJobLog(days int) error {
- path := getJobLogPath()
- return cLog.DeleteLogsOlderThan(path, "log", days)
- }
- func (j *JobLogger) Info(msg string, args ...interface{}) {
- msg = "[CRON] " + msg
- if len(args) > 0 {
- for _, v := range args {
- msg += fmt.Sprintf(" %v", v)
- }
- }
- j.Helper.Info(msg)
- }
- func (j *JobLogger) Infof(msg string, args ...interface{}) {
- msg = "[JobCore] " + msg
- j.Helper.Infof(msg, args...)
- }
- func (j *JobLogger) Error(err error, msg string, args ...interface{}) {
- msg = "[CRON] " + msg
- if len(args) > 0 {
- for _, v := range args {
- msg += fmt.Sprintf("%v ", v)
- }
- }
- j.Helper.Errorf("%s; ERROR: %s", msg, err.Error())
- }
- func (j *JobLogger) Errorf(msg string, args ...interface{}) {
- msg = "[JobCore] " + msg
- j.Helper.Errorf(msg, args...)
- }
|