Mycroft.Logger.Log C# (CSharp) Method

Log() private method

Log given message. Example of a log message: [2008-04-10 13:30:00Z] WARNING: this is the message
private Log ( Level level, string message ) : bool
level Level The level of severity of this message
message string The message to log
return bool
        private bool Log(Level level, string message)
        {
            CheckFile();

            if (level.CompareTo(LogLevel) < 0)
            {
                return false;
            }

            try
            {
                // assemble message
                var sb = new StringBuilder();
                sb.Append(DateTime.Now.ToString("u"));
                sb.Append(" ");
                sb.Append(Enum.GetName(typeof(Level), level).ToUpper());
                sb.Append(": ");
                sb.Append(message);
                message = sb.ToString();

                lock (WriteLock)
                {
                    // write to console
                    var oldColor = Console.ForegroundColor;
                    Console.ForegroundColor = GetColor(level);
                    Console.WriteLine(message);
                    Console.ForegroundColor = oldColor;

                    // write to diagnostics log
                    System.Diagnostics.Debug.WriteLine(message);

                    // write to log file
                    os.WriteLine(sb.ToString());
                }
            }
            catch
            {
                return false;
            }
            return true;
        }