Skip to content
This repository was archived by the owner on Dec 13, 2018. It is now read-only.

Commit 81424d2

Browse files
pakrymBrennanConroy
authored andcommitted
Always log messages and never throw
1 parent ab43352 commit 81424d2

File tree

2 files changed

+16
-2
lines changed

2 files changed

+16
-2
lines changed

src/Microsoft.Extensions.Logging.Console/Internal/ConsoleLoggerProcessor.cs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,16 @@ public virtual void EnqueueMessage(LogMessageEntry message)
2929
{
3030
if (!_messageQueue.IsAddingCompleted)
3131
{
32-
_messageQueue.Add(message);
32+
try
33+
{
34+
_messageQueue.Add(message);
35+
return;
36+
}
37+
catch (InvalidOperationException) { }
3338
}
39+
40+
// Adding is completed so just log the message
41+
WriteMessage(message);
3442
}
3543

3644
// for testing

test/Microsoft.Extensions.Logging.Test/ConsoleLoggerTest.cs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -836,15 +836,21 @@ public void WriteCore_NullMessageWithNullException()
836836
}
837837

838838
[Fact]
839-
public void LogAfterDisposeDoesNotThrow()
839+
public void LogAfterDisposeWritesLog()
840840
{
841+
// Arrange
841842
var sink = new ConsoleSink();
842843
var console = new TestConsole(sink);
843844
var processor = new ConsoleLoggerProcessor();
844845
var logger = new ConsoleLogger(_loggerName, filter: null, includeScopes: false, loggerProcessor: processor);
845846
logger.Console = console;
847+
848+
// Act
846849
processor.Dispose();
847850
logger.LogInformation("Logging after dispose");
851+
852+
// Assert
853+
Assert.True(sink.Writes.Count == 2);
848854
}
849855

850856
private string GetMessage(string logLevelString, int eventId, Exception exception)

0 commit comments

Comments
 (0)