in src/log4net/Core/LoggingEvent.cs [1061:1139]
protected virtual void FixVolatileData(FixFlags flags)
{
// Unlock the cache so that new values can be stored
// This may not be ideal if we are no longer in the correct context
// and someone calls fix.
_cacheUpdatable = true;
// determine the flags that we are actually fixing
FixFlags updateFlags = (flags ^ _fixFlags) & flags;
if (updateFlags > 0)
{
if ((updateFlags & FixFlags.Message) != 0)
{
// Force the message to be rendered
_ = RenderedMessage;
_fixFlags |= FixFlags.Message;
}
if ((updateFlags & FixFlags.ThreadName) != 0)
{
// Grab the thread name
_ = ThreadName;
_fixFlags |= FixFlags.ThreadName;
}
if ((updateFlags & FixFlags.LocationInfo) != 0)
{
// Force the location information to be loaded
_ = LocationInformation;
_fixFlags |= FixFlags.LocationInfo;
}
if ((updateFlags & FixFlags.UserName) != 0)
{
// Grab the user name
_ = UserName;
_fixFlags |= FixFlags.UserName;
}
if ((updateFlags & FixFlags.Domain) != 0)
{
// Grab the domain name
_ = Domain;
_fixFlags |= FixFlags.Domain;
}
if ((updateFlags & FixFlags.Identity) != 0)
{
// Grab the identity
_ = Identity;
_fixFlags |= FixFlags.Identity;
}
if ((updateFlags & FixFlags.Exception) != 0)
{
// Force the exception text to be loaded
_ = GetExceptionString();
_fixFlags |= FixFlags.Exception;
}
if ((updateFlags & FixFlags.Properties) != 0)
{
CacheProperties();
_fixFlags |= FixFlags.Properties;
}
}
// Finally lock everything we've cached.
_cacheUpdatable = false;
}