public static void CloseLog(LogStreamType SelectedLogStream) { switch (SelectedLogStream) { case LogStreamType.LogStream: default: if (LogStream != null) { LogStream.WriteLine(""); LogStream.WriteLine("Fermeture du log courant"); LogStream.Flush(); LogStream.Close(); LogStream = null; } break; case LogStreamType.LogChronoStream: if (LogChronoStream != null) { LogChronoStream.WriteLine(""); LogChronoStream.WriteLine("Fermeture du log courant"); LogChronoStream.Flush(); LogChronoStream.Close(); LogChronoStream = null; } break; } }
private static void CreateLog(String LogIdentifier, LogStreamType SelectedLogStream) { LogIdentifier = CheckLogIdentifier(LogIdentifier); if (Directory.Exists(LogDirectory) == false) { Directory.CreateDirectory(LogDirectory); } else { #region Archivage try { List <String> FileList = System.IO.Directory.GetFiles(LogDirectory, "*_Log.txt").ToList(); if (FileList != null && FileList.Count > 19) { //Archivage des anciens logs if (Directory.Exists(ArchiveDirectory) == false) { Directory.CreateDirectory(ArchiveDirectory); } String DayDirectory = ArchiveDirectory + "\\" + DateTime.Now.ToString("yyyy-MM-dd"); if (Directory.Exists(DayDirectory) == false) { Directory.CreateDirectory(DayDirectory); } foreach (String File in FileList) { try { System.IO.FileInfo Name = new System.IO.FileInfo(File); Directory.Move(LogDirectory + "\\" + Name.Name, DayDirectory + "\\" + Name.Name); } catch {} } } if (Directory.Exists(ArchiveDirectory)) { List <String> DirList = System.IO.Directory.GetDirectories(ArchiveDirectory).ToList(); if (DirList != null && DirList.Count > 20) { DeleteFolder(DirList.OrderBy(d => d).First()); } } } catch (Exception ex) { // erreur d'archivage des logs Core.Error.SendMailError(ex.ToString()); } #endregion } LogPath = LogDirectory + "\\" + DateTime.Now.ToString("yyyy-MM-dd_HH-mm") + ((!String.IsNullOrWhiteSpace(LogIdentifier)) ? "_" : "") + LogIdentifier + "_Log.txt"; switch (SelectedLogStream) { case LogStreamType.LogStream: default: LogStream = new StreamWriter(LogPath, true, Encoding.UTF8); LogStream.AutoFlush = true; break; case LogStreamType.LogChronoStream: int counter = 1; while (System.IO.File.Exists(LogPath)) { LogPath = LogDirectory + "\\" + DateTime.Now.ToString("yyyy-MM-dd_HH-mm-ss") + ((!String.IsNullOrWhiteSpace(LogIdentifier)) ? "_" : "") + LogIdentifier + "_Log" + counter.ToString() + ".txt"; counter++; } LogChronoStream = new StreamWriter(LogPath, true, Encoding.UTF8); LogChronoStream.AutoFlush = true; break; } }