GSF.IO.RunTimeLog.ReadLog C# (CSharp) 메소드

ReadLog() 보호된 메소드

Reads the run-time log.
protected ReadLog ( ) : void
리턴 void
        protected void ReadLog()
        {
            try
            {
                if (string.IsNullOrWhiteSpace(m_fileName))
                    throw new NullReferenceException("No run-time log file name was specified");

                lock (m_readerWriterLock)
                {
                    if (File.Exists(m_fileName))
                    {
                        using (StreamReader reader = File.OpenText(m_fileName))
                        {
                            string fileData = reader.ReadToEnd();

                            if (fileData.Length > 0)
                            {
                                Dictionary<string, string> settings = fileData.Replace(Environment.NewLine, ";").ParseKeyValuePairs();
                                string setting;

                                if (!settings.TryGetValue(LastStartTimeKey, out setting) || !DateTimeOffset.TryParseExact(setting.Trim(), DateTimeFormat, CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal | DateTimeStyles.AllowInnerWhite, out m_startTime))
                                    m_startTime = DateTimeOffset.UtcNow;

                                if (!settings.TryGetValue(LastStopTimeKey, out setting) || !DateTimeOffset.TryParseExact(setting.Trim(), DateTimeFormat, CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal | DateTimeStyles.AllowInnerWhite, out m_stopTime))
                                    m_stopTime = DateTimeOffset.UtcNow;

                                if (!settings.TryGetValue(LastRunningTimeKey, out setting) || !DateTimeOffset.TryParseExact(setting.Trim(), DateTimeFormat, CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal | DateTimeStyles.AllowInnerWhite, out m_runningTime))
                                    m_runningTime = DateTimeOffset.UtcNow;
                            }
                            else
                            {
                                m_startTime = m_stopTime = m_runningTime = DateTimeOffset.UtcNow;
                            }
                        }
                    }
                    else
                    {
                        m_startTime = m_stopTime = m_runningTime = DateTimeOffset.UtcNow;
                    }
                }
            }
            catch (Exception ex)
            {
                m_startTime = m_stopTime = m_runningTime = DateTimeOffset.UtcNow;
                OnProcessException(new InvalidOperationException("Failed to read run-time log: " + ex.Message, ex));
            }
        }