private void Run() { m_mailService = EmailSenderServiceFactory.CreateLocalEmailSenderService(); while (true) { EmailMessageBody emailMsgBody; if (m_queue.TryDequeue(out emailMsgBody)) { try { m_mailService.Send(emailMsgBody); } catch (Exception e) { var errMsg = GetExceptionMsg("发送邮件失败", e); System.Console.WriteLine(errMsg); try { TxtLogHelper.WriteLog(errMsg); } catch (Exception logException) { var logErrMsg = GetExceptionMsg("写Log文件失败", logException); System.Console.WriteLine(logErrMsg); } } } else { System.Threading.Thread.Sleep(500); } } }
private void DeleteLog() { try { TxtLogHelper.WriteLog("执行删除日志任务"); DateTime date = DateTime.Now; if (date.Hour > 1)//一点前执行 { return; } string path = System.Environment.CurrentDirectory + @"\\Log\\TCP\\"; if (Directory.Exists(path)) { DeleteFile(path, 3); //删除该目录下 超过 3天的文件 } path = System.Environment.CurrentDirectory + @"\\Log\\UDP\\"; if (Directory.Exists(path)) { DeleteFile(path, 7); //删除该目录下 超过 7天的文件 } path = System.Environment.CurrentDirectory + @"\\Log\\Info\\"; if (Directory.Exists(path)) { DeleteFile(path, 14); //删除该目录下 超过 14天的文件 } } catch (Exception ex) { TxtLogHelper.WriteLog("执行删除日志任务异常:" + ex.Message); } }
/// <summary> /// /// </summary> public TimerManager(TcpManager _tcp) { tcp = _tcp; Thread t = new Thread(Load); t.Start(); TxtLogHelper.WriteLog("启动定时任务"); }
/// <summary> /// 调用方法 /// </summary> private void RunMethod(object sender, System.Timers.ElapsedEventArgs e) { TxtLogHelper.WriteLog("开始执行定时任务"); _timer.Enabled = false; try { DeleteLog(); } catch (Exception ex) { TxtLogHelper.WriteLog("执行定时任务异常:" + ex.Message); } TxtLogHelper.WriteLog("定时任务执行结束"); _timer.Enabled = true; }
/// <summary> /// 删除目录下超过指定天数的文件 /// </summary> private void DeleteFile(string fileDirect, int saveDay) { DateTime nowTime = DateTime.Now; string[] files = Directory.GetFiles(fileDirect, "*.log", SearchOption.AllDirectories); //获取该目录下所有 .txt文件 foreach (string file in files) { FileInfo fileInfo = new FileInfo(file); TimeSpan t = nowTime - fileInfo.CreationTime; //当前时间 减去 文件创建时间 int day = t.Days; if (day > saveDay) //保存的时间,单位:天 { try { System.IO.File.Delete(fileInfo.FullName); //删除文件 } catch (Exception ex) { TxtLogHelper.WriteLog("删除日志文件异常:" + ex.Message); } } } }