Skip to content

Commit abfffca

Browse files
authored
Add managed thread id to log output to add debugging threading issues (#790)
* Add managed thread id to log output to add debugging threading issues Also update format to display method before filename, makes it easy to visually scan the log to see what is going on. * Lessen log output a bit - remove 'method' and [] around the thread id
1 parent 5afa456 commit abfffca

File tree

1 file changed

+11
-10
lines changed

1 file changed

+11
-10
lines changed

src/PowerShellEditorServices/Utility/PsesLogger.cs

+11-10
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using System;
22
using System.Runtime.CompilerServices;
33
using System.Text;
4+
using System.Threading;
45
using Serilog.Core;
56

67
namespace Microsoft.PowerShell.EditorServices.Utility
@@ -54,27 +55,27 @@ public void Write(
5455
string indentedLogMsg = IndentMsg(logMessage);
5556
string logLevelName = logLevel.ToString().ToUpper();
5657

58+
int threadId = Thread.CurrentThread.ManagedThreadId;
59+
60+
string messageTemplate =
61+
"[{LogLevelName:l}] tid:{threadId} in '{CallerName:l}' {CallerSourceFile:l}:{CallerLineNumber}:{IndentedLogMsg:l}";
62+
5763
switch (logLevel)
5864
{
5965
case LogLevel.Diagnostic:
60-
_logger.Verbose("[{LogLevelName:l}] {CallerSourceFile:l}: In method '{CallerName:l}', line {CallerLineNumber}:{IndentedLogMsg:l}",
61-
logLevelName, callerSourceFile, callerName, callerLineNumber, indentedLogMsg);
66+
_logger.Verbose(messageTemplate, logLevelName, threadId, callerName, callerSourceFile, callerLineNumber, indentedLogMsg);
6267
return;
6368
case LogLevel.Verbose:
64-
_logger.Debug("[{LogLevelName:l}] {CallerSourceFile:l}: In method '{CallerName:l}', line {CallerLineNumber}:{IndentedLogMsg:l}",
65-
logLevelName, callerSourceFile, callerName, callerLineNumber, indentedLogMsg);
69+
_logger.Debug(messageTemplate, logLevelName, threadId, callerName, callerSourceFile, callerLineNumber, indentedLogMsg);
6670
return;
6771
case LogLevel.Normal:
68-
_logger.Information("[{LogLevelName:l}] {CallerSourceFile:l}: In method '{CallerName:l}', line {CallerLineNumber}:{IndentedLogMsg:l}",
69-
logLevelName, callerSourceFile, callerName, callerLineNumber, indentedLogMsg);
72+
_logger.Information(messageTemplate, logLevelName, threadId, callerName, callerSourceFile, callerLineNumber, indentedLogMsg);
7073
return;
7174
case LogLevel.Warning:
72-
_logger.Warning("[{LogLevelName:l}] {CallerSourceFile:l}: In method '{CallerName:l}', line {CallerLineNumber}:{IndentedLogMsg:l}",
73-
logLevelName, callerSourceFile, callerName, callerLineNumber, indentedLogMsg);
75+
_logger.Warning(messageTemplate, logLevelName, threadId, callerName, callerSourceFile, callerLineNumber, indentedLogMsg);
7476
return;
7577
case LogLevel.Error:
76-
_logger.Error("[{LogLevelName:l}] {CallerSourceFile:l}: In method '{CallerName:l}', line {CallerLineNumber}:{IndentedLogMsg:l}",
77-
logLevelName, callerSourceFile, callerName, callerLineNumber, indentedLogMsg);
78+
_logger.Error(messageTemplate, logLevelName, threadId, callerName, callerSourceFile, callerLineNumber, indentedLogMsg);
7879
return;
7980
}
8081
}

0 commit comments

Comments
 (0)