clean-log.go 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. package jobs
  2. import (
  3. "IotAdmin/common"
  4. "IotAdmin/core/logger"
  5. iotLog "IotAdmin/iot/log"
  6. "strconv"
  7. "strings"
  8. "time"
  9. )
  10. // CleanLog
  11. // 新添加的job 必须按照以下格式定义,并实现Exec函数
  12. type CleanLog struct {
  13. }
  14. func (t *CleanLog) Exec(arg interface{}) error {
  15. jobLogger.Infof("【CleanLog】 EXEC START")
  16. err := common.CleanSysLog()
  17. if err != nil {
  18. jobLogger.Errorf("CleanSysLog EXEC ERROR:%s", err.Error())
  19. return err
  20. }
  21. err = CleanJobLog(7)
  22. if err != nil {
  23. jobLogger.Errorf("CleanJobLog EXEC ERROR:%s", err.Error())
  24. return err
  25. }
  26. switch arg.(type) {
  27. case string:
  28. if arg.(string) != "" {
  29. str := arg.(string)
  30. arr := strings.Split(str, ",")
  31. p1, err := strconv.Atoi(arr[0])
  32. if err != nil {
  33. jobLogger.Errorf("CleanLog EXEC ERROR:%s", err.Error())
  34. return err
  35. }
  36. if len(arr) > 1 {
  37. p2, err := strconv.Atoi(arr[1])
  38. if err != nil {
  39. jobLogger.Errorf("CleanLog EXEC ERROR:%s", err.Error())
  40. return err
  41. }
  42. err = iotLog.Clean(p1, p2)
  43. if err != nil {
  44. jobLogger.Errorf("CleanLog EXEC ERROR:%s", err.Error())
  45. return err
  46. }
  47. } else {
  48. err = iotLog.Clean(p1, p1)
  49. if err != nil {
  50. jobLogger.Errorf("CleanLog EXEC ERROR:%s", err.Error())
  51. return err
  52. }
  53. }
  54. } else {
  55. jobLogger.Errorf("CleanLog EXEC ERROR: arg is empty")
  56. }
  57. break
  58. case int:
  59. if arg.(int) != 0 {
  60. p := arg.(int)
  61. err := iotLog.Clean(p, p)
  62. if err != nil {
  63. logger.Error(time.Now().Format(timeFormat) + " [ERROR] JobCore CleanLog exec error:" + err.Error())
  64. return err
  65. }
  66. }
  67. break
  68. default:
  69. }
  70. jobLogger.Infof("【CleanLog】 EXEC END\r\n")
  71. return nil
  72. }
  73. func (t *CleanLog) GetName() string {
  74. return "清理日志"
  75. }