Skip to content

Commit dbccb6c

Browse files
committed
Enhance logging by including category in log prefix and unify logger configuration for Ionide.ProjInfo
1 parent 7b9d2f9 commit dbccb6c

File tree

2 files changed

+9
-3
lines changed

2 files changed

+9
-3
lines changed

src/FSharp.Analyzers.Cli/CustomLogging.fs

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,14 +36,14 @@ type CustomFormatter(options: IOptionsMonitor<CustomOptions>) as this =
3636
textWriter.WriteLine(message)
3737
this.ResetColor(textWriter)
3838
else
39-
this.WritePrefix(textWriter, logEntry.LogLevel)
39+
this.WritePrefix(textWriter, logEntry.Category, logEntry.LogLevel)
4040
textWriter.WriteLine(message)
4141
// logEntry.Formatter doesn't actually write the exception so we need to do that ourselves
4242
// https://github.com/dotnet/runtime/blob/2bcadad3045934b54672e626bbb6131f7d0a523c/src/libraries/Microsoft.Extensions.Logging.Console/src/SystemdConsoleFormatter.cs#L95-L101
4343
if not (isNull logEntry.Exception) then
4444
textWriter.WriteLine(logEntry.Exception.ToString())
4545

46-
member private x.WritePrefix(textWriter: TextWriter, logLevel: LogLevel) =
46+
member private x.WritePrefix(textWriter: TextWriter, category: string, logLevel: LogLevel) =
4747
if not (isNull formatterOptions.TimestampFormat) then
4848
let dateTime =
4949
if formatterOptions.UseUtcTimestamp then
@@ -55,6 +55,8 @@ type CustomFormatter(options: IOptionsMonitor<CustomOptions>) as this =
5555

5656
textWriter.Write($"{timestamp} ")
5757

58+
textWriter.Write($"[{category}] ")
59+
5860
match logLevel with
5961
| LogLevel.Trace -> textWriter.Write("trace: ")
6062
| LogLevel.Debug -> textWriter.Write("debug: ")

src/FSharp.Analyzers.Cli/Program.fs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -604,7 +604,11 @@ let main argv =
604604
|> ignore
605605
)
606606

607-
logger <- factory.CreateLogger("")
607+
logger <- factory.CreateLogger("FSharp.Analyzers.Cli")
608+
609+
// Set the Ionide.ProjInfo logger to use the same Microsoft.Extensions.Logging logger
610+
if logLevel <= LogLevel.Information then
611+
Ionide.ProjInfo.Logging.Providers.MicrosoftExtensionsLoggingProvider.setMicrosoftLoggerFactory factory
608612

609613
logger.LogInformation("Running in verbose mode")
610614

0 commit comments

Comments
 (0)