serilog-contrib / SerilogSinksInMemory

In-memory sink for Serilog to use for testing
MIT License
53 stars 7 forks source link

Create a thread-safe InMemorySink #21

Open gulimran opened 3 years ago

gulimran commented 3 years ago

We would like to create a thread-safe InMemorySink for the use in our projects. At the moment, when we make a few parallel async calls, the logger does not have all the log events.

We see two possible solutions:

  1. Add a lock object to make all methods thread-safe in the existing InMemorySink class.
  2. Same as above but in a new thread-safe class which can be accessed by a new builder method in the InMemorySinkExtensions class.

Please let me know which one is a preferred option and we are happy to raise a pull request.

sandermvanvliet commented 3 years ago

@gulimran let me have a think about this. It’s been something that’s been on my todo list for a while but I’d like to make sure the usage is going to be predictable for people using the package

sandermvanvliet commented 3 years ago

I’ll check locally becauseIIRC I had a branch that already had some parts of this