Ejemplo n.º 1
0
        public void Write(Type type, eLoggerLevel level, string sMessage, object[] args)
        {
            int iLevel = (int)level;

            if ((iLevel & m_iAllowedLevels) > 0)
            {
                try
                {
                    LoggerRecord record = new LoggerRecord(type, level, sMessage, args);
                    m_sqMessages.Enqueue(record);
                }
                catch (Exception excp)
                {
                    Console.ForegroundColor = ConsoleColor.Red;

                    Console.WriteLine(ExcpHelper.FormatException(excp, "LiveLog.WriteConsole('{0}') ERROR", m_sLogleFilePath));
                }
            }
        }
Ejemplo n.º 2
0
        protected void LoggerThread(ThreadContext tc)
        {
            FileInfo fi = new FileInfo(m_sLogleFilePath);

            StringBuilder sb = new StringBuilder();

            try
            {
                while (!tc.IsToStop)
                {
                    if (fi.Exists && fi.Length > m_lMaxSize)
                    {
                        string sExtension   = Path.GetExtension(m_sLogleFilePath);
                        string sNewFileName = string.Format("{0}.backup__{1:dd-MMM-yyyy__HH-mm-ss}{2}.", m_sLogleFilePath, DateTime.Now, sExtension);

                        File.Move(m_sLogleFilePath, sNewFileName);
                    }

                    using (StreamWriter sw = new StreamWriter(m_sLogleFilePath, true))
                    {
                        while (!tc.IsToStop)
                        {
                            if (m_sqMessages.Count > 0)
                            {
                                LoggerRecord record = m_sqMessages.Dequeue();

                                sb.AppendFormat("{0} {1:dd-MMM-yyyy HH:mm:ss.ffffff} ", record.LoggerLevel, record.Time);

                                if (record.Args != null && record.Args.Length > 0)
                                {
                                    sb.AppendFormat(record.Message, record.Args);
                                }
                                else
                                {
                                    sb.Append(record.Message);
                                }

                                sb.Append("\r\n");

                                sw.Write(sb.ToString());
                                sw.Flush();
                            }

                            sb.Clear();
                            fi.Refresh();

                            if (fi.Length > m_lMaxSize)
                            {
                                break;
                            }

                            Thread.Sleep(1);
                        }
                    }
                }
            }
            catch (Exception excp)
            {
                Console.ForegroundColor = ConsoleColor.Red;

                Console.WriteLine(ExcpHelper.FormatException(excp, "LiveLog.WriteConsole('{0}') ERROR", m_sLogleFilePath));
            }
        }