in src/log4net/Layout/Pattern/ExceptionPatternConverter.cs [90:128]
protected override void Convert(TextWriter writer, LoggingEvent loggingEvent)
{
if (loggingEvent.ExceptionObject is not null && !string.IsNullOrEmpty(Option))
{
switch (Option!.ToLowerInvariant())
{
case "message":
WriteObject(writer, loggingEvent.Repository, loggingEvent.ExceptionObject.Message);
break;
case "source":
WriteObject(writer, loggingEvent.Repository, loggingEvent.ExceptionObject.Source);
break;
case "stacktrace":
WriteObject(writer, loggingEvent.Repository, loggingEvent.ExceptionObject.StackTrace);
break;
case "targetsite":
WriteObject(writer, loggingEvent.Repository, loggingEvent.ExceptionObject.TargetSite);
break;
case "helplink":
WriteObject(writer, loggingEvent.Repository, loggingEvent.ExceptionObject.HelpLink);
break;
default:
// do not output SystemInfo.NotAvailableText
break;
}
}
else
{
string? exceptionString = loggingEvent.GetExceptionString();
if (!string.IsNullOrEmpty(exceptionString))
{
writer.WriteLine(exceptionString);
}
else
{
// do not output SystemInfo.NotAvailableText
}
}
}