По запросу, вы можете использовать подход, описанный здесь: Log4Net доступные поля базы данных для adoappender - кажется, есть еще несколько, например, method_name? для использования пользовательских свойств в log4net ThreadContext
для возможного сохранения этого дополнительная информация об исключениях в следующем виде:
public void LogDetailedException (LogLevel level, string message, Exception exception)
{
log4net.ThreadContext.Properties["exceptionType"] = exception.GetType().AssemblyQualifiedName;
// appropriate logging statement
log4net.ThreadContent.Properties.Remove("exceptionType"); // clear it, so it's not used in future calls
}
А потом по вашему шаблону:
<conversionPattern value="%property{exceptionType}" />
Стоит протестировать / исследовать, чтобы убедиться, что это потокобезопасно (название подразумевает, что это так, но это не помешает проверить). Вы также захотите убедиться, что последующие журналы не включают эти данные в свои сообщения (т.е. убедитесь, что они очищены).
(помечено как wiki, так как это не совсем мой ответ, просто сбор различной информации и обсуждение в комментариях к ответу Митча ).