예제 #1
0
        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);
        }
예제 #2
0
        private LogManager.LOG_LAYOUT ParseLogLayout(string lay_out)
        {
            LogManager.LOG_LAYOUT log_lay = LogManager.LOG_LAYOUT.UTC_TIMESTAMP;

            switch (lay_out.ToLower())
            {
            case STR_LO_UTC_TIME:
                log_lay = LogManager.LOG_LAYOUT.UTC_TIMESTAMP;
                break;

            case STR_LO_RAW_TIME:
                log_lay = LogManager.LOG_LAYOUT.RAW_TIMESTAMP;
                break;

            case STR_LO_SIMPLE:
                log_lay = LogManager.LOG_LAYOUT.SIMPLE_FORMAT;
                break;

            case STR_LO_XML:
                log_lay = LogManager.LOG_LAYOUT.XML_FORMAT;
                break;

            default:
                break;
            }
            return(log_lay);
        }