LogHelper.cs 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. using DBHelper;
  2. using Microsoft.EntityFrameworkCore;
  3. using System;
  4. using System.Linq;
  5. using WCS.Core;
  6. using WCS.Entity;
  7. namespace WCS.Service.Helpers
  8. {
  9. public class LogHelper
  10. {
  11. /// <summary>
  12. /// 添加异常记录
  13. /// </summary>
  14. /// <param name="msg">异常信息</param>
  15. /// <param name="device">异常关联设备</param>
  16. /// <param name="type">异常类型 关联WCS_EXCEPTIONTYPE枚举</param>
  17. public static void AddWCS_EXCEPTION(string msg, string device, string type)
  18. {
  19. DB.Do(db =>
  20. {
  21. var exp = db.Default.Set<WCS_EXCEPTION>()
  22. .Where(v => EF.Functions.DateDiffSecond(v.UPDATETIME, DateTime.Now) < 5)
  23. .Where(v => v.MSG == msg)
  24. .OrderByDescending(v => v.ID)
  25. .FirstOrDefault() ?? db.Default.Set<WCS_EXCEPTION>().Add(new WCS_EXCEPTION
  26. {
  27. MSG = msg,
  28. DEVICE = device,
  29. EXCEPTIONTYPE = type,
  30. STARTTIME = DateTime.Now,
  31. TIMES = 0,
  32. UPDATETIME = DateTime.Now,
  33. UPDATEUSER = "WCS"
  34. }).Entity;
  35. exp.TIMES++;
  36. exp.UPDATETIME = DateTime.Now;
  37. db.Default.SaveChanges();
  38. });
  39. }
  40. /// <summary>
  41. /// 拼接日志消息 ,避免返回异常时写错导致异常
  42. /// </summary>
  43. /// <param name="msg">异常信息</param>
  44. /// <param name="device">异常关联设备</param>
  45. /// <param name="type">异常类型</param>
  46. /// <returns></returns>
  47. public static string SpliceLogMessage(string msg, string device, WCS_EXCEPTIONTYPE type, Type type1)
  48. {
  49. InfoLog.INFO_ERROR($"{type1.FullName}--{msg}--{device}--{type}");
  50. return $"{msg}|{device}|{type}";
  51. }
  52. }
  53. }