Example #1
0
        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;
            }
        }
Example #2
0
        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;
            }
        }