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