LOG.cs 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Diagnostics;
  4. using System.Linq;
  5. using System.Runtime.CompilerServices;
  6. using System.Text;
  7. using Aitex.Core.RT.Log;
  8. namespace Aitex.Core.RT.Log
  9. {
  10. public static class LOG
  11. {
  12. public static ICommonLog InnerLogger { set; private get; }
  13. public static void Info(string message, bool isTraceOn=false, int traceLevel=2, [CallerFilePath] string file = "",
  14. [CallerMemberName] string member = "",
  15. [CallerLineNumber] int line = 0)
  16. {
  17. if (InnerLogger != null)
  18. InnerLogger.Info(message, isTraceOn, GetFormatStackFrameInfo(traceLevel));
  19. }
  20. static string GetFormatStackFrameInfo(int traceLevel)
  21. {
  22. StackFrame sf = new StackTrace(true).GetFrame(traceLevel+1);
  23. string pathFile = sf.GetFileName();
  24. string file = string.IsNullOrEmpty(pathFile) ? "" : pathFile.Substring(pathFile.LastIndexOf('\\') + 1);
  25. return $"{file}\tLine {sf.GetFileLineNumber()}\t{sf.GetMethod().Name}()";
  26. }
  27. public static void Warning(string message, int traceLevel = 2, [CallerFilePath] string file = "",
  28. [CallerMemberName] string member = "",
  29. [CallerLineNumber] int line = 0)
  30. {
  31. if (InnerLogger != null)
  32. InnerLogger.Warning(message, GetFormatStackFrameInfo(traceLevel));
  33. }
  34. public static void Warning(string message, int traceLevel = 2, [CallerFilePath] string file = "",
  35. [CallerMemberName] string member = "",
  36. [CallerLineNumber] int line = 0, params object[] args)
  37. {
  38. if (InnerLogger != null)
  39. InnerLogger.Warning(string.Format(message, args), GetFormatStackFrameInfo(traceLevel));
  40. }
  41. public static void Error(string message, int traceLevel = 2, [CallerFilePath] string file = "",
  42. [CallerMemberName] string member = "",
  43. [CallerLineNumber] int line = 0)
  44. {
  45. if (InnerLogger != null)
  46. InnerLogger.Error(message, GetFormatStackFrameInfo(traceLevel));
  47. }
  48. public static void Warning(string message, Exception ex, int traceLevel = 2, [CallerFilePath] string file = "",
  49. [CallerMemberName] string member = "",
  50. [CallerLineNumber] int line = 0)
  51. {
  52. if (InnerLogger != null)
  53. InnerLogger.Warning(message, ex, GetFormatStackFrameInfo(traceLevel));
  54. }
  55. public static void Error(string message, Exception ex, int traceLevel = 2, [CallerFilePath] string file = "",
  56. [CallerMemberName] string member = "",
  57. [CallerLineNumber] int line = 0)
  58. {
  59. if (InnerLogger != null)
  60. InnerLogger.Error(message, ex, GetFormatStackFrameInfo(traceLevel));
  61. }
  62. public static void Write(Exception ex, int traceLevel = 2, [CallerFilePath] string file = "",
  63. [CallerMemberName] string member = "",
  64. [CallerLineNumber] int line = 0)
  65. {
  66. Error("", ex, traceLevel+1);
  67. }
  68. public static void Write(Exception ex, string message, int traceLevel = 2, [CallerFilePath] string file = "",[CallerMemberName] string member = "",[CallerLineNumber] int line = 0)
  69. {
  70. Error(message, ex, traceLevel + 1);
  71. }
  72. public static void Write(string message, int traceLevel = 2, [CallerFilePath] string file = "",[CallerMemberName] string member = "",[CallerLineNumber] int line = 0)
  73. {
  74. Info(message, false, traceLevel + 1);
  75. }
  76. }
  77. }