예제 #1
0
        public void LogToFile(FFLogLevel nLogLevel, string data)
        {
            if (m_nLogLevel < (int)nLogLevel)
            {
                return;
            }
            ConsoleColor color   = ConsoleColor.Gray;
            string       logdata = "";

            switch (nLogLevel)
            {
            case FFLogLevel.DEBUG:
            {
                logdata = string.Format("[{0:MM-dd HH:mm:ss}] DEBUG   {1}", System.DateTime.Now, data);
            } break;

            case FFLogLevel.TRACE:
            {
                logdata = string.Format("[{0:MM-dd HH:mm:ss}] TRACE   {1}", System.DateTime.Now, data);
            } break;

            case FFLogLevel.INFO:
            {
                color   = ConsoleColor.Green;
                logdata = string.Format("[{0:MM-dd HH:mm:ss}] INFO    {1}", System.DateTime.Now, data);
            }
            break;

            case FFLogLevel.WARNING:
            {
                color   = ConsoleColor.Yellow;
                logdata = string.Format("[{0:MM-dd HH:mm:ss}] WARNING {1}", System.DateTime.Now, data);
            }
            break;

            case FFLogLevel.ERROR:
            {
                color   = ConsoleColor.Red;
                logdata = string.Format("[{0:MM-dd HH:mm:ss}] ERROR   {1}", System.DateTime.Now, data);
            }
            break;

            default:
                logdata = string.Format("[{0:MM-dd HH:mm:ss}] ERROR   {1}", System.DateTime.Now, data);
                break;
            }

            m_taskQueue.Post(() => {
                m_sw.WriteLine(logdata);
                m_sw.Flush();
                Console.ForegroundColor = color;
                Console.WriteLine(logdata);
            });
        }
예제 #2
0
        public void LogToFile(FFLogLevel nLogLevel, string data)
        {
            try
            {
                string fileName = string.Format("./log/{0:yyyy-MM-dd}.txt", System.DateTime.Now);
                if (m_fs == null || fileName != m_strCurFileName)
                {
                    if (!System.IO.Directory.Exists("./log"))
                    {
                        System.IO.Directory.CreateDirectory("./log");
                    }
                    m_strCurFileName = fileName;
                    if (m_fs != null)
                    {
                        m_fs.Close();
                    }
                    if (m_sw != null)
                    {
                        m_sw.Close();
                    }
                    m_fs = new FileStream(m_strCurFileName, FileMode.Append);
                    m_sw = new StreamWriter(m_fs);
                }

                if (m_nLogLevel < (int)nLogLevel)
                {
                    return;
                }
                ConsoleColor color   = colorDefault;
                string       logdata = "";
                switch (nLogLevel)
                {
                case FFLogLevel.DEBUG:
                {
                    logdata = string.Format("[{0:yyyy-MM-dd HH:mm:ss}] DEBUG {1}", System.DateTime.Now, data);
                } break;

                case FFLogLevel.TRACE:
                {
                    logdata = string.Format("[{0:yyyy-MM-dd HH:mm:ss}] TRACE {1}", System.DateTime.Now, data);
                } break;

                case FFLogLevel.INFO:
                {
                    color   = ConsoleColor.Green;
                    logdata = string.Format("[{0:yyyy-MM-dd HH:mm:ss}] INFO  {1}", System.DateTime.Now, data);
                }
                break;

                case FFLogLevel.WARNING:
                {
                    color   = ConsoleColor.Yellow;
                    logdata = string.Format("[{0:yyyy-MM-dd HH:mm:ss}] WARN  {1}", System.DateTime.Now, data);
                }
                break;

                case FFLogLevel.ERROR:
                {
                    color   = ConsoleColor.Red;
                    logdata = string.Format("[{0:yyyy-MM-dd HH:mm:ss}] ERROR {1}", System.DateTime.Now, data);
                }
                break;

                default:
                    logdata = string.Format("[{0:yyyy-MM-dd HH:mm:ss}] ERROR {1}", System.DateTime.Now, data);
                    break;
                }

                m_taskQueue.Post(() => {
                    m_sw.WriteLine(logdata);
                    m_sw.Flush();
                    Console.ForegroundColor = color;
                    Console.WriteLine(logdata);
                    if (color != colorDefault)
                    {
                        Console.ForegroundColor = colorDefault;
                    }
                });
            }
            catch (System.Exception ex)
            {
                Console.WriteLine("Log.LogToFile Exception:" + ex.Message);
            }
        }