using System; using System.IO; using System.Timers; namespace Aitex.Core.RT.Log { public class LogManager : ICommonLog { public const int MaxLogsMonth = 3; public static readonly log4net.ILog loginfo = log4net.LogManager.GetLogger("fileAppender"); private static Timer deleteTimer;//定义定时器,定时删除log public void Initialize() { deleteTimer = new Timer(1); deleteTimer.Elapsed += OnDeleteLog; deleteTimer.AutoReset = true; deleteTimer.Enabled = true; LOG.InnerLogger = this; } public void Debug(string message) { loginfo.Debug(message); } public void Info(string message) { loginfo.Info(message); } public void Warning(string message) { loginfo.Warn(message); } public void Error(string message) { loginfo.Error(message); } /// /// 定期删除log /// /// void OnDeleteLog(Object source, ElapsedEventArgs e) { try { if (deleteTimer.Interval == 1) { deleteTimer.Interval = 1000 * 60 * 60 * 24; } string path = string.Format(@"{0}", "Logs"); FileInfo[] fileInfos; DirectoryInfo curFolderInfo = new DirectoryInfo(path); fileInfos = curFolderInfo.GetFiles(); foreach (FileInfo info in fileInfos) { if (info.Name.Contains("log") && info.Extension == ".txt") { DateTime lastWriteTime = DateTime.Parse(info.LastWriteTime.ToShortDateString()); DateTime intervalTime = DateTime.Now.AddMonths(-MaxLogsMonth); if (lastWriteTime < intervalTime) { File.Delete(info.FullName); } } } } catch { } } public void Terminate() { try { if (deleteTimer != null) { deleteTimer.Enabled = false; } } catch (Exception ex) { System.Diagnostics.Trace.WriteLine(ex.Message); } } } }