CNAS取数仪器端升级
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

4 个月前
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171
  1. using log4net;
  2. using log4net.Appender;
  3. using log4net.Config;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.Diagnostics;
  7. using System.IO;
  8. using System.Linq;
  9. using System.Reflection;
  10. using System.Text;
  11. namespace CnasSynchronousCommon
  12. {
  13. public static class AppLog
  14. {
  15. //private static ILog log;
  16. public static ILog logInfo;
  17. public static ILog logErr;
  18. public static ILog logServiceInfo;
  19. static AppLog()
  20. {
  21. XmlConfigurator.ConfigureAndWatch(new FileInfo(AppDomain.CurrentDomain.SetupInformation.ConfigurationFile));
  22. //log = LogManager.GetLogger(typeof(AppLog));
  23. logInfo = LogManager.GetLogger("Log");
  24. logErr = LogManager.GetLogger("Err");
  25. logServiceInfo = LogManager.GetLogger("ServiceLog");
  26. }
  27. public static void DeleteLog(int days)
  28. {
  29. DeleteLog(logInfo, days);
  30. DeleteLog(logErr, days);
  31. DeleteLog(logServiceInfo, days);
  32. }
  33. private static void DeleteLog(ILog _log, int days)
  34. {
  35. var apps = _log.Logger.Repository.GetAppenders();
  36. if (apps.Length <= 0)
  37. {
  38. return;
  39. }
  40. var now = DateTime.UtcNow.AddDays(days);
  41. foreach (var item in apps)
  42. {
  43. if (item is RollingFileAppender)
  44. {
  45. RollingFileAppender roll = item as RollingFileAppender;
  46. var dir = Path.GetDirectoryName(roll.File);
  47. var files = Directory.GetFiles(dir, "*.txt");
  48. foreach (var filePath in files)
  49. {
  50. var file = new FileInfo(filePath);
  51. if (file.CreationTimeUtc < now)
  52. {
  53. try
  54. {
  55. file.Delete();
  56. }
  57. catch (Exception ex)
  58. {
  59. Error(ex.Message);
  60. }
  61. }
  62. }
  63. }
  64. }
  65. }
  66. public static void Info()
  67. {
  68. throw new NotImplementedException();
  69. }
  70. //public static void Debug(object message)
  71. //{
  72. // log.Debug(message);
  73. //}
  74. //public static void DebugFormatted(string format, params object[] args)
  75. //{
  76. // log.DebugFormat(format, args);
  77. //}
  78. //public static void Info(object message)
  79. //{
  80. // log.Info(message);
  81. //}
  82. //public static void InfoFormatted(string format, params object[] args)
  83. //{
  84. // log.InfoFormat(format, args);
  85. //}
  86. //public static void Warn(object message)
  87. //{
  88. // log.Warn(message);
  89. //}
  90. //public static void Warn(object message, Exception exception)
  91. //{
  92. // log.Warn(message, exception);
  93. //}
  94. //public static void WarnFormatted(string format, params object[] args)
  95. //{
  96. // log.WarnFormat(format, args);
  97. //}
  98. //public static void Error(object message)
  99. //{
  100. // log.Error(message);
  101. //}
  102. //public static void Error(object message, Exception exception)
  103. //{
  104. // log.Error(message, exception);
  105. //}
  106. //public static void ErrorFormatted(string format, params object[] args)
  107. //{
  108. // log.ErrorFormat(format, args);
  109. //}
  110. //public static void Fatal(object message)
  111. //{
  112. // log.Fatal(message);
  113. //}
  114. //public static void Fatal(object message, Exception exception)
  115. //{
  116. // log.Fatal(message, exception);
  117. //}
  118. //public static void FatalFormatted(string format, params object[] args)
  119. //{
  120. // log.FatalFormat(format, args);
  121. //}
  122. /// <summary>
  123. /// 记录正常的消息
  124. /// </summary>
  125. /// <param name="msg">消息内容</param>
  126. public static void Info(string msg)
  127. {
  128. logInfo.Info(msg);
  129. }
  130. /// <summary>
  131. /// 记录异常信息
  132. /// </summary>
  133. /// <param name="msg">异常信息内容</param>
  134. public static void Error(string msg)
  135. {
  136. StackTrace stackTrace = new StackTrace();
  137. StackFrame stackFrame = stackTrace.GetFrame(1);
  138. MethodBase methodBase = stackFrame.GetMethod();
  139. logErr.Error("类名:" + methodBase.ReflectedType.Name + " 方法名:" + methodBase.Name + " 信息:" + msg);
  140. }
  141. /// <summary>
  142. /// 记录服务执行信息
  143. /// </summary>
  144. /// <param name="msg"></param>
  145. public static void ServiceInfo(string msg)
  146. {
  147. StackTrace stackTrace = new StackTrace();
  148. StackFrame stackFrame = stackTrace.GetFrame(1);
  149. MethodBase methodBase = stackFrame.GetMethod();
  150. logServiceInfo.Info("类名:" + methodBase.ReflectedType.Name + " 方法名:" + methodBase.Name + " 信息:" + msg);
  151. }
  152. }
  153. }