I started using log4net.async to log using a separate thread but the performance hasn't improved as much as I had anticipated initially and I understand the reason for that being that some of the strings we are logging are very long because they describe properties of a message that is received.
So for example, we could do:
theLogger.Debug(msg.ToString());
When the "ToString()" method is called it could generate a really long string representing a message and it might take awhile to actually generate it (slow deserialization, etc.). Although it is important for me to log the message I would prefer to "stringify" the message on a separate thread rather than the currently running thread so that my currently running thread can continue processing. How would I make log4net evaluate the "ToString()" result or "stringify" the message object on a separate thread?