Beispiel #1
0
        public static void Write(string message, Level level = Level.Logic, UnityDebugLogMode unityDebugLogMode = UnityDebugLogMode.Normal)
        {
            if (LogStreamWriter != null && MaxLevel != Level.Disabled && level <= MaxLevel)
            {
                DateTime _now = DateTime.Now;

                string _additional_padding = "";
                switch (level)
                {
                case Level.Logic:
                    break;

                case Level.Networking:
                    _additional_padding = "<-> ";
                    break;

                case Level.Debug1:
                    _additional_padding = new String(' ', 8);
                    break;

                case Level.Debug2:
                    _additional_padding = new String(' ', 12);
                    break;

                case Level.Debug3:
                    _additional_padding = new String(' ', 16);
                    break;
                }

                // Prefix length: 28 symbols.
                string _timestamp_prefix_local = "[" + _now.ToString("yyyy.MM.dd HH:mm:ss:ffff") + ((AddTid && Thread.CurrentThread.ManagedThreadId != 1) ? " tid: " + Thread.CurrentThread.ManagedThreadId.ToString() : "") + "]: " + _additional_padding;
                string _empty_prefix           = new String(' ', 28) + _additional_padding;
                string _timestamp_prefix_utc   = UtcTimestamp ? "[" + _now.ToUniversalTime().ToString("yyyy.MM.dd HH:mm") + " UTC    ]  " + _additional_padding : _empty_prefix;

                string preparedMessage = "";
                int    _line_count     = 0;
                foreach (var _line in message.Split(new string[] { "\n", "\r\n" }, StringSplitOptions.RemoveEmptyEntries))
                {
                    _line_count++;

                    switch (_line_count)
                    {
                    case 1:
                        preparedMessage += _timestamp_prefix_local + _line + Environment.NewLine;
                        break;

                    case 2:
                        preparedMessage += (MultilinePadding ? _timestamp_prefix_utc : "") + _line + Environment.NewLine;
                        break;

                    default:
                        preparedMessage += (MultilinePadding ? _empty_prefix : "") + _line + Environment.NewLine;
                        break;
                    }
                }

                if (!CompactMode)
                {
                    if (_line_count < 2 && UtcTimestamp)
                    {
                        preparedMessage += _timestamp_prefix_utc + Environment.NewLine;
                    }

                    preparedMessage += "" + Environment.NewLine;
                }

                lock (Locker)
                {
                    if (ConsoleOutput)
                    {
                        Console.Write(preparedMessage);
                    }
                    LogStreamWriter.Write(preparedMessage);
                    LogStreamWriter.Flush();
                }
            }

#if UNITY_5_3_OR_NEWER
            switch (unityDebugLogMode)
            {
            case UnityDebugLogMode.Normal:
                Debug.Log(message);
                break;

            case UnityDebugLogMode.Warning:
                Debug.LogWarning(message);
                break;

            case UnityDebugLogMode.Error:
                Debug.LogError(message);
                break;
            }
#endif
        }
Beispiel #2
0
 public static void WriteXML(DataNode node, string message = "", Level level = Level.Logic, UnityDebugLogMode unityDebugLogMode = UnityDebugLogMode.Normal)
 {
     Write(message + DataFormats.SaveToString(DataFormat.XML, node), level, unityDebugLogMode);
 }
Beispiel #3
0
    public static void Write(string message, Level level = Level.Logic, UnityDebugLogMode unityDebugLogMode = UnityDebugLogMode.Normal)
    {
        if (MaxLevel != Level.Disabled && level <= MaxLevel)
        {
            FileMode _fileMode = FileMode.Append;

            if (OverwriteOldContent)
            {
                _fileMode           = FileMode.Create;
                OverwriteOldContent = false;
            }

            using (FileStream _fileStream = File.Open(FilePath, _fileMode, FileAccess.Write, FileShare.Read))
            {
                using (StreamWriter _streamWriter = new StreamWriter(_fileStream))
                {
                    DateTime _now = DateTime.Now;

                    string _additional_padding = "";
                    switch (level)
                    {
                    case Level.Logic:
                        break;

                    case Level.Networking:
                        _additional_padding = "<-> ";
                        break;

                    case Level.Debug1:
                        _additional_padding = new String(' ', 8);
                        break;

                    case Level.Debug2:
                        _additional_padding = new String(' ', 12);
                        break;

                    case Level.Debug3:
                        _additional_padding = new String(' ', 16);
                        break;
                    }

                    // Prefix length: 28 symbols.
                    string _timestamp_prefix_local = "[" + _now.ToString("yyyy.MM.dd HH:mm:ss:ffff") + "]: " + _additional_padding;
                    string _timestamp_prefix_utc   = "[" + _now.ToUniversalTime().ToString("yyyy.MM.dd HH:mm") + " UTC    ]  " + _additional_padding;
                    string _empty_prefix           = new String(' ', 28) + _additional_padding;

                    int _line_count = 0;
                    foreach (var _line in message.Split(new string[] { "\n", "\r\n" }, StringSplitOptions.RemoveEmptyEntries))
                    {
                        _line_count++;

                        switch (_line_count)
                        {
                        case 1:
                            _streamWriter.WriteLine(_timestamp_prefix_local + _line);
                            break;

                        case 2:
                            _streamWriter.WriteLine(_timestamp_prefix_utc + _line);
                            break;

                        default:
                            _streamWriter.WriteLine(_empty_prefix + _line);
                            break;
                        }
                    }

                    if (!CompactMode)
                    {
                        if (_line_count < 2)
                        {
                            _streamWriter.WriteLine(_timestamp_prefix_utc);
                        }

                        _streamWriter.WriteLine("");
                    }

                    _streamWriter.Flush();
                }
            }
        }

        switch (unityDebugLogMode)
        {
        case UnityDebugLogMode.Normal:
            Debug.Log(message);
            break;

        case UnityDebugLogMode.Warning:
            Debug.LogWarning(message);
            break;

        case UnityDebugLogMode.Error:
            Debug.LogError(message);
            break;
        }
    }