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);
}
}
}
}