Example #1
0
        private void OnListen(object state)
        {
            try
            {
                LogFileThreadInfo      threadInfo = state as LogFileThreadInfo;
                string                 fileName   = threadInfo.FileName;
                UserModeQueue <string> queue      = threadInfo.FileItem.Queue;
                StringBuilder          sb         = threadInfo.FileItem.Builder;

                while (!_mre.Wait(10))
                {
                    try
                    {
                        string content = queue.Dequeue();
                        if (_mre.IsSet)
                        {
                            if (!content.IsEmpty())
                            {
                                this.WriteContentToFile(fileName, content);
                            }
                            break;
                        }

                        this.WriteContentToFile(fileName, content);
                    }
                    catch (Exception ex)
                    {
                        this.WriteExceptionToEventLog(ex);
                    }
                }
            }
            catch (Exception ex)
            {
                this.WriteExceptionToEventLog(ex);
            }
            finally
            {
                _ceShutdown.Signal();
            }
        }
Example #2
0
        private void InitListenForFile(string fileName)
        {
            try
            {
                LogFileThreadInfo threadInfo = new LogFileThreadInfo()
                {
                    FileName = fileName,
                    FileItem = new LogFileItem(_mre),
                };
                _fileLogItems.Add(fileName, threadInfo.FileItem);
                threadInfo.FileItem.Builder.AppendLine(this.FormatContent("(# START OF LOG #)"));

                Thread thListen = new Thread(new ParameterizedThreadStart(this.OnListen));
                thListen.IsBackground = true;
                thListen.Name         = "LogThread_" + Path.GetFileName(fileName);
                thListen.Start(threadInfo);

                _ceShutdown.Reset(_fileLogItems.Count);
            }
            catch (Exception ex)
            {
                this.WriteExceptionToEventLog(ex);
            }
        }
        private void InitListenForFile(string fileName)
        {
            try
            {
                LogFileThreadInfo threadInfo = new LogFileThreadInfo()
                {
                    FileName = fileName,
                    FileItem = new LogFileItem(_mre),
                };
                _fileLogItems.Add(fileName, threadInfo.FileItem);
                threadInfo.FileItem.Builder.AppendLine(this.FormatContent("(# START OF LOG #)"));

                Thread thListen = new Thread(new ParameterizedThreadStart(this.OnListen));
                thListen.IsBackground = true;
                thListen.Name = "LogThread_" + Path.GetFileName(fileName);
                thListen.Start(threadInfo);

                _ceShutdown.Reset(_fileLogItems.Count);
            }
            catch (Exception ex)
            {
                this.WriteExceptionToEventLog(ex);
            }
        }