/// <summary> /// Adds the specified File Writer Object to the file writer object list. /// </summary> /// <param name="fileWriterObject"> /// The File Writer Object. /// </param> public void Add(FileWriterObject fileWriterObject) { lock (lockList) { this.fileWriterObjects.Add(fileWriterObject); } }
/// <summary> /// Writes the text to file. /// </summary> /// <param name="path"> /// The path including the file. /// </param> /// <param name="fileName"> /// Name of the file. /// </param> /// <param name="text"> /// The text to write. /// </param> /// <param name="maxFileSize"> /// Max. size of file. /// </param> public static void WriteTextToFile(string path, string fileName, string text, int maxFileSize = 128 * 1024 * 1024) { if (fileWriter == null) { fileWriter = new FileWriter(); } FileWriterObject fwo = new FileWriterObject(path, fileName, text, maxFileSize); fileWriter.Add(fwo); }
/// <summary> /// The run. /// </summary> private void Run() { while (this.enabled) { try { System.Threading.Thread.Sleep(2000); List <FileWriterObject> fwol_write; lock (lockList) { fwol_write = this.fileWriterObjects; this.fileWriterObjects = new List <FileWriterObject>(100); } int counter = fwol_write.Count; for (int i = 0; i < counter; i++) { if (fwol_write[i] != null) { FileWriterObject fwo = fwol_write[i]; string path = fwo.Path; string fileName = fwo.FileName; StringBuilder logText = new StringBuilder(512 * 1024); logText.Append(fwo.Text); int maxFileSize = fwo.MaxFileSize; i++; while (i < counter && fwol_write[i].Path == path && fwol_write[i].FileName == fileName && logText.Length < 512 * 1024) { logText.Append(fwol_write[i].Text); i++; } if (i < counter) { i--; } this.WriteTextToFile(path, fileName, logText.ToString(), maxFileSize); } } } catch (Exception ex) { FileOperation.LogError(ex, FileOperation.MaxLogFileSize); } } }