diff --git a/Editor/UberLoggerEditorWindow.cs b/Editor/UberLoggerEditorWindow.cs index 39adc79..bd67cb6 100755 --- a/Editor/UberLoggerEditorWindow.cs +++ b/Editor/UberLoggerEditorWindow.cs @@ -267,6 +267,13 @@ void DrawToolbar() ShowTimes = showTimes; } DrawPos.x += elementSize.x; + var showChannels = ToggleClamped(ShowChannels, "Channels", EditorStyles.toolbarButton, out elementSize); + if (showChannels != ShowChannels) + { + MakeDirty = true; + ShowChannels = showChannels; + } + DrawPos.x += elementSize.x; var collapse = ToggleClamped(Collapse, "Collapse", EditorStyles.toolbarButton, out elementSize); if(collapse!=Collapse) { @@ -365,15 +372,30 @@ bool ShouldShowLog(System.Text.RegularExpressions.Regex regex, LogInfo log) /// /// Converts a given log element into a piece of gui content to be displayed /// - GUIContent GetLogLineGUIContent(UberLogger.LogInfo log, bool showTimes) + GUIContent GetLogLineGUIContent(UberLogger.LogInfo log, bool showTimes, bool showChannels) { var showMessage = log.Message; + //Make all messages single line showMessage = showMessage.Replace(UberLogger.Logger.UnityInternalNewLine, " "); - if(showTimes) - { - showMessage = log.GetRelativeTimeStampAsString() + ": " + showMessage; - } + + // Format the message as follows: + // [channel] 0.000 : message <-- Both channel and time shown + // 0.000 : message <-- Time shown, channel hidden + // [channel] : message <-- Channel shown, time hidden + // message <-- Both channel and time hidden + var showChannel = showChannels && !string.IsNullOrEmpty(log.Channel); + var channelMessage = showChannel ? string.Format("[{0}]", log.Channel) : ""; + var channelTimeSeparator = (showChannel && showTimes) ? " " : ""; + var timeMessage = showTimes ? string.Format("{0}", log.GetRelativeTimeStampAsString()) : ""; + var prefixMessageSeparator = (showChannel || showTimes) ? " : " : ""; + showMessage = string.Format("{0}{1}{2}{3}{4}", + channelMessage, + channelTimeSeparator, + timeMessage, + prefixMessageSeparator, + showMessage + ); var content = new GUIContent(showMessage, GetIconForLog(log)); return content; @@ -435,7 +457,7 @@ public void DrawLogList(float height) foreach(var countedLog in collapsedLinesList) { - var content = GetLogLineGUIContent(countedLog.Log, ShowTimes); + var content = GetLogLineGUIContent(countedLog.Log, ShowTimes, ShowChannels); RenderLogs.Add(countedLog); var logLineSize = logLineStyle.CalcSize(content); LogListMaxWidth = Mathf.Max(LogListMaxWidth, logLineSize.x); @@ -453,7 +475,7 @@ public void DrawLogList(float height) { if(ShouldShowLog(filterRegex, log)) { - var content = GetLogLineGUIContent(log, ShowTimes); + var content = GetLogLineGUIContent(log, ShowTimes, ShowChannels); RenderLogs.Add(new CountedLog(log, 1)); var logLineSize = logLineStyle.CalcSize(content); LogListMaxWidth = Mathf.Max(LogListMaxWidth, logLineSize.x); @@ -507,7 +529,7 @@ public void DrawLogList(float height) } //Make all messages single line - var content = GetLogLineGUIContent(log, ShowTimes); + var content = GetLogLineGUIContent(log, ShowTimes, ShowChannels); var drawRect = new Rect(logLineX, buttonY, contentRect.width, LogListLineHeight); if(GUI.Button(drawRect, content, logLineStyle)) { @@ -905,6 +927,7 @@ void ClearSelectedMessage() Texture2D SmallWarningIcon; Texture2D SmallMessageIcon; + bool ShowChannels = true; bool ShowTimes = true; bool Collapse = false; bool ScrollFollowMessages = false;