Beispiel #1
0
 /// <summary>
 /// 写入日志文件,该操作是线程安全的
 /// </summary>
 /// <param name="filenameTemplate"></param>
 /// <param name="pathTemplate"></param>
 /// <param name="log"></param>
 /// <param name="logDir"></param>
 /// <param name="logTime"></param>
 /// <param name="eLevel"></param>
 private static void Write(string log, string logDir, bool logTime, ExceptionHelper.ExceptionLevel eLevel, string pathTemplate, string filenameTemplate)
 {
     try
     {
         Monitor.Enter(_sync);
         if (string.IsNullOrEmpty(_appName))
         {
             FileInfo fi = new FileInfo(Process.GetCurrentProcess().MainModule.ModuleName);
             try
             {
                 _appName = fi.Name.Remove(fi.Name.Length - fi.Extension.Length);
             }
             catch
             {
                 _appName = "Null";
             }
             _basePath = string.IsNullOrWhiteSpace(_LogFilePath) ? AppDomain.CurrentDomain.BaseDirectory : _LogFilePath;
         }
         DateTime curDatetime = DateTime.Now;
         string   path        = string.Format(string.IsNullOrEmpty(pathTemplate) ? _LogPathTemplate : pathTemplate, _basePath, curDatetime, logDir);
         string   filename    = String.Format(string.IsNullOrEmpty(filenameTemplate) ? _LogFilenameTemplate : filenameTemplate, curDatetime);
         string   strTime     = logTime ? curDatetime.ToString("[HH:mm:ss.fff]:") : "";
         WriteIntoFile(String.Format("{3}{2}{0}{1}", strTime, log, ExceptionHelper.GetToken(eLevel), eLevel == ExceptionHelper.ExceptionLevel.None ? "" : "#"), path, filename);
     }
     catch (Exception ex)
     {
         string errMessage = "写入日志文件";
         try
         {
             DateTime curDatetime = DateTime.Now;
             string   content     = String.Format(
                 "{3}{2}{0}{1}",
                 logTime ? curDatetime.ToString("[HH:mm:ss.fff]:") : "",
                 log,
                 ExceptionHelper.GetToken(eLevel),
                 eLevel == ExceptionHelper.ExceptionLevel.None ? "" : "#");
             string filename = String.Format(string.IsNullOrEmpty(filenameTemplate) ? _LogFilenameTemplate : filenameTemplate, curDatetime);
             errMessage = string.Format("写[{0}]至日志[{1}]文件", content, filename);
         }
         catch (Exception) { }
         LogExceptionToEventLog(ex, errMessage);
     }
     finally
     {
         Monitor.Exit(_sync);
     }
 }
Beispiel #2
0
 /// <summary>
 /// 写入日志文件,该操作是线程安全的
 /// </summary>
 /// <param name="log"></param>
 /// <param name="logDir"></param>
 /// <param name="logTime"></param>
 /// <param name="eLevel"></param>
 public static void WriteLog(string log, string logDir, bool logTime, ExceptionHelper.ExceptionLevel eLevel)
 {
     WriteLog(log, logDir, logTime, eLevel, _LogPathTemplate, _LogFilenameTemplate);
 }
Beispiel #3
0
 /// <summary>
 /// 写入日志文件,该操作是线程安全的
 /// </summary>
 /// <param name="log"></param>
 /// <param name="eLevel"></param>
 /// <param name="parameters"></param>
 public static void WriteLog(string log, ExceptionHelper.ExceptionLevel eLevel, params object[] parameters)
 {
     WriteLog(string.Format(log, parameters), eLevel);
 }
Beispiel #4
0
 /// <summary>
 /// 写入日志文件,该操作是线程安全的
 /// </summary>
 /// <param name="log"></param>
 /// <param name="eLevel"></param>
 public static void WriteLog(string log, ExceptionHelper.ExceptionLevel eLevel)
 {
     Write(log, _defaultLogDirectoryName, true, eLevel, _LogPathTemplate, _LogFilenameTemplate);
 }
Beispiel #5
0
 /// <summary>
 /// 写入日志文件,该操作是线程安全的
 /// </summary>
 /// <param name="log"></param>
 /// <param name="logDir"></param>
 /// <param name="logTime"></param>
 /// <param name="eLevel"></param>
 /// <param name="filenameTemplate">
 /// {0}: 当前时间;
 /// 默认值为"{0:yyyy-MM-dd-HH}.log"
 /// </param>
 /// <param name="pathTemplate">
 /// {0}: 程序的基础路径;
 /// {1}: 当前时间;
 /// {2}: 记录的日志文件夹;
 /// {3}: 应用程序的名字;
 /// 默认值为@"{0}Logs\{2}\{1:yyyy\\M}\"
 /// </param>
 public static void WriteLog(string log, string logDir, bool logTime, ExceptionHelper.ExceptionLevel eLevel, string pathTemplate, string filenameTemplate)
 {
     Write(log, logDir, logTime, eLevel, pathTemplate, filenameTemplate);
 }