Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions dotnet/src/webdriver/Internal/Logging/LogContextManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
// under the License.
// </copyright>

using System;
using System.Diagnostics.CodeAnalysis;
using System.Threading;

Expand All @@ -26,13 +27,13 @@ namespace OpenQA.Selenium.Internal.Logging
{
internal class LogContextManager
{
private readonly AsyncLocal<ILogContext?> _currentAmbientLogContext = new AsyncLocal<ILogContext?>();
private readonly AsyncLocal<ILogContext?> _currentAmbientLogContext = new();

public LogContextManager()
{
var defaulConsoleLogHandler = new ConsoleLogHandler();
var defaulConsoleLogHandler = new TextWriterHandler(Console.Error);

GlobalContext = new LogContext(LogEventLevel.Info, null, null, new[] { defaulConsoleLogHandler });
GlobalContext = new LogContext(LogEventLevel.Info, null, null, [defaulConsoleLogHandler]);
}

public ILogContext GlobalContext { get; }
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// <copyright file="ConsoleLogHandler.cs" company="Selenium Committers">
// <copyright file="TextWriterHandler.cs" company="Selenium Committers">
// Licensed to the Software Freedom Conservancy (SFC) under one
// or more contributor license agreements. See the NOTICE file
// distributed with this work for additional information
Expand All @@ -17,7 +17,7 @@
// under the License.
// </copyright>

using System;
using System.IO;

#nullable enable

Expand All @@ -26,7 +26,7 @@ namespace OpenQA.Selenium.Internal.Logging
/// <summary>
/// Represents a log handler that writes log events to the console.
/// </summary>
public class ConsoleLogHandler : ILogHandler
public class TextWriterHandler(TextWriter writer) : ILogHandler
{
// performance trick to avoid expensive Enum.ToString() with fixed length
private static readonly string[] _levels = { "TRACE", "DEBUG", " INFO", " WARN", "ERROR" };
Expand All @@ -37,7 +37,7 @@ public class ConsoleLogHandler : ILogHandler
/// <param name="logEvent">The log event to handle.</param>
public void Handle(LogEvent logEvent)
{
Console.Error.WriteLine($"{logEvent.Timestamp:HH:mm:ss.fff} {_levels[(int)logEvent.Level]} {logEvent.IssuedBy.Name}: {logEvent.Message}");
writer.WriteLine($"{logEvent.Timestamp:HH:mm:ss.fff} {_levels[(int)logEvent.Level]} {logEvent.IssuedBy.Name}: {logEvent.Message}");
}
}
}
2 changes: 1 addition & 1 deletion dotnet/test/common/Internal/Logging/LogTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ public class LogTest
private void ResetGlobalLog()
{
Log.SetLevel(LogEventLevel.Info);
Log.Handlers.Clear().Handlers.Add(new ConsoleLogHandler());
Log.Handlers.Clear().Handlers.Add(new TextWriterHandler(Console.Error));
}

[SetUp]
Expand Down