diff --git a/dotnet/src/webdriver/Internal/Logging/LogContext.cs b/dotnet/src/webdriver/Internal/Logging/LogContext.cs index 7ea38d188f1d7..1ad9fbc0cb18b 100644 --- a/dotnet/src/webdriver/Internal/Logging/LogContext.cs +++ b/dotnet/src/webdriver/Internal/Logging/LogContext.cs @@ -98,9 +98,12 @@ public void EmitMessage(ILogger logger, DateTimeOffset timestamp, LogEventLevel { if (IsEnabled(logger, level)) { - string truncatedMessage = TruncateMessage(message, _truncationLength); + if (_truncationLength.HasValue && level < LogEventLevel.Warn) + { + message = TruncateMessage(message, _truncationLength); + } - var logEvent = new LogEvent(logger.Issuer, timestamp, level, truncatedMessage); + var logEvent = new LogEvent(logger.Issuer, timestamp, level, message); foreach (var handler in Handlers) { diff --git a/dotnet/test/webdriver/Internal/Logging/LogTests.cs b/dotnet/test/webdriver/Internal/Logging/LogTests.cs index 4bcf158cb86c8..1a1e7c59578e6 100644 --- a/dotnet/test/webdriver/Internal/Logging/LogTests.cs +++ b/dotnet/test/webdriver/Internal/Logging/LogTests.cs @@ -298,6 +298,20 @@ public void ShouldNotTruncateWhenDisabled() Assert.That(testLogHandler.Events, Has.Count.EqualTo(1)); Assert.That(testLogHandler.Events[0].Message, Is.EqualTo(longMessage)); } + + [TestCase(LogEventLevel.Warn)] + [TestCase(LogEventLevel.Error)] + public void ShouldNotTruncateImportantMessages(LogEventLevel level) + { + var longMessage = new string('a', 150); + + using var context = Log.CreateContext(level).WithTruncation(100).Handlers.Add(testLogHandler); + + logger.LogMessage(DateTimeOffset.Now, level, longMessage); + + Assert.That(testLogHandler.Events, Has.Count.EqualTo(1)); + Assert.That(testLogHandler.Events[0].Message, Is.EqualTo(longMessage)); + } } internal class TestLogHandler : ILogHandler