private void ArchiveByDate(string fileName, string pattern, LogEventInfo logEvent)
{
string dirName = Path.GetDirectoryName(Path.GetFullPath(pattern));
if (dirName != null)
{
DateTime archiveDate = GetArchiveDate(fileName, logEvent);
string fileNameMask = ReplaceFileNamePattern(pattern, "*");
string dateFormat = GetArchiveDateFormatString(this.ArchiveDateFormat);
string archiveFileName = Path.Combine(dirName, fileNameMask.Replace("*", archiveDate.ToString(dateFormat)));
ArchiveFile(fileName, archiveFileName);
}
DeleteOldDateArchives(pattern);
}