Hi,
 
I've had a request from the developers at my company to modify the way in which log4net outputs exceptions to the log.  This would need to take effect in my EventLogAppender and AdoNetAppender.  Will I need to create my own custom class similar to ExceptionLayout or a custom class similar to ExceptionPatternConverter?  How can I specify this change to the EventLogAppender?

The request is to format the exception more like the way the .NET Enterprise Library did in .NET 1.1.:
 

1) Exception Information

*********************************************

Exception Type: X.WebApps.NewsRoom.WebControls.NewsSystemException

Message: Could not retrieve a list of articles from the category

Data: System.Collections.ListDictionaryInternal

TargetSite: NULL

HelpLink: NULL

Source: NULL

2) Exception Information

*********************************************

Exception Type: System.Exception

Message: An error occurred while processing the required SQL script: D:\WebSites\X\WebAppsFolders\WebAppsCommonFiles\\scripts\core.config

Data: System.Collections.ListDictionaryInternal

TargetSite: Void ExecuteScripts(System.String, System.String[], Boolean, Boolean)

HelpLink: NULL

Source: X.WebApps.CoreLibrary.X.X

StackTrace Information

*********************************************

at X.WebApps.CoreSystem.ExecuteScripts(String path, String[] scripts, Boolean trapExceptions, Boolean sendAppPath)

at X.WebApps.CoreSystem.SystemInit()

at X.WebApps.CoreSystem..ctor(String application)

at X.WebApps.NewsRoom.WebControls.NewsArticleDisplayer.GetNewsArticleAndCategory(Category& newsCategory, Article& newsArticle)

 
Here is a sample of what is being output by the default format:
 
System.Exception: Testing application error handling from the DevCenter/ApplicationErrorTest.aspx form. ---> System.ArrayTypeMismatchException: Oh my gosh some sort of array mismatch occurred in this fake class! Error! Error!
at RemoteNet.Zapenza.Utility.TestClass..ctor() in C:\Solutions\CIProjects\RemoteNet\Zapenza\Working\Source\RemoteNet.Zapenza.Utility\TestClass.cs:line 11
at DevCenter_ApplicationErrorTest.lnkApplicationError_Click(Object sender, EventArgs e) in c:\Solutions\CIProjects\RemoteNet\Zapenza\Working\Source\RemoteNet.Zapenza.Web.UI\DevCenter\ApplicationErrorTest.aspx.cs:line 24
--- End of inner exception stack trace ---
at DevCenter_ApplicationErrorTest.lnkApplicationError_Click(Object sender, EventArgs e) in c:\Solutions\CIProjects\RemoteNet\Zapenza\Working\Source\RemoteNet.Zapenza.Web.UI\DevCenter\ApplicationErrorTest.aspx.cs:line 28
at System.Web.UI.WebControls.LinkButton.OnClick(EventArgs e)
at System.Web.UI.WebControls.LinkButton.RaisePostBackEvent(String eventArgument)
at System.Web.UI.WebControls.LinkButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
at System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
at System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

Reply via email to