public Log(string log_path, string level, string lay_out, int log_appender) { if (null == log_path || string.Empty == log_path) { log_path = DEFAULT_LOG_PATH; } log_path = Path.Combine(Folder.GetCurrentDir(), log_path); if (!Directory.Exists(log_path)) { Directory.CreateDirectory(log_path); } m_Level = ParseLogLevel(level); m_Layout = ParseLogLayout(lay_out); m_LogAppender = log_appender; m_LogPath = Path.Combine(log_path, DEFAULT_LOG_FILE_PREFIX); m_LogThread = new Thread(this.Run); m_LogThread.Name = this.GetType().Name + " work thread"; m_LogBuffer = new LogDBuffer(); m_IsActive = true; m_LogThread.Start(); ThreadManager.Instance.AddThread(m_LogThread); }
private string GetLevelName(LogManager.LOG_LEVEL level) { string str_lv = string.Empty; switch (level) { case LogManager.LOG_LEVEL.DEBUG: str_lv = STR_LV_DEBUG; break; case LogManager.LOG_LEVEL.INFO: str_lv = STR_LV_INFO; break; case LogManager.LOG_LEVEL.WARN: str_lv = STR_LV_WARN; break; case LogManager.LOG_LEVEL.ERROR: str_lv = STR_LV_ERROR; break; case LogManager.LOG_LEVEL.FATAL: str_lv = STR_LV_FATAL; break; default: break; } return(str_lv); }
private void SetConsoleFrontColor(LogManager.LOG_LEVEL level) { int color = -1; switch (level) { case LogManager.LOG_LEVEL.DEBUG: color = DEBUG_COLOR; break; case LogManager.LOG_LEVEL.INFO: color = INFO_COLOR; break; case LogManager.LOG_LEVEL.WARN: color = WARN_COLOR; break; case LogManager.LOG_LEVEL.ERROR: color = ERROR_COLOR; break; case LogManager.LOG_LEVEL.FATAL: color = FATAL_COLOR; break; default: break; } if (-1 != color) { Console.ForegroundColor = (ConsoleColor)color; } }
private void WriteConsole(LogManager.LOG_LEVEL level, string log) { if ((m_LogAppender | (int)LogManager.LOG_APPENDER.COLORED_CONSOLE) > 0) { SetConsoleFrontColor(level); } Console.Out.WriteLine(log); }
public void Write(LogManager.LOG_LEVEL level, string log, Exception ex = null) { if (null != ex) { log = log + "\r\n Error: " + ex.Message + "\r\n InnerException: " + ex.InnerException + "\r\n StackTrace: " + ex.StackTrace; } string str_now = string.Empty; if (LogManager.LOG_LAYOUT.UTC_TIMESTAMP == m_Layout) { str_now = Time.GetUtcNow().ToString("G"); } else if (LogManager.LOG_LAYOUT.RAW_TIMESTAMP == m_Layout) { str_now = Time.GetNow().ToString("G"); } else if (LogManager.LOG_LAYOUT.SIMPLE_FORMAT == m_Layout) { } else if (LogManager.LOG_LAYOUT.XML_FORMAT == m_Layout) { } log = str_now + " [" + GetLevelName(level) + "] " + log; if ((m_LogAppender | (int)LogManager.LOG_APPENDER.FILE) > 0) { WriteBuffer(log); } if ((m_LogAppender | (int)LogManager.LOG_APPENDER.CONSOLE) > 0 || (m_LogAppender | (int)LogManager.LOG_APPENDER.COLORED_CONSOLE) > 0) { WriteConsole(level, log); } if ((m_LogAppender | (int)LogManager.LOG_APPENDER.TRACE) > 0) { WriteTrace(log); } }
private LogManager.LOG_LEVEL ParseLogLevel(string level) { LogManager.LOG_LEVEL log_lv = LogManager.LOG_LEVEL.ALL; switch (level.ToLower()) { case STR_LV_DEBUG: log_lv = LogManager.LOG_LEVEL.DEBUG; break; case STR_LV_INFO: log_lv = LogManager.LOG_LEVEL.INFO; break; case STR_LV_WARN: log_lv = LogManager.LOG_LEVEL.WARN; break; case STR_LV_ERROR: log_lv = LogManager.LOG_LEVEL.ERROR; break; case STR_LV_FATAL: log_lv = LogManager.LOG_LEVEL.FATAL; break; case STR_LV_OFF: log_lv = LogManager.LOG_LEVEL.OFF; break; default: break; } return(log_lv); }