logging-log4net-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sean Carlin" <seancar...@gmail.com>
Subject Re: Customize the exception output
Date Fri, 23 Jun 2006 22:10:53 GMT
Hi Ron,

I noticed that the Exception Information part can really vary per exception,
so I don't know how well a pattern output will work.  It would be nice to
understand what the Enterprise Library does to figure this stuff out.  I may
have to reverse engineer the code with a tool to see.  Yes, Ent Lib does
spit out "Void ExecuteScripts(System.String,System.String[], Boolean,
Boolean)."

Another variation (of many, apparently):

1) Exception Information
*********************************************
Exception Type: System.Security.SecurityException
Action: 0
PermissionType: NULL
FirstPermissionThatFailed: NULL
PermissionState: NULL
Demanded: NULL
GrantedSet: NULL
RefusedSet: NULL
DenySetInstance: NULL
PermitOnlySetInstance: NULL
FailedAssemblyInfo: NULL
Method: NULL
Zone: MyComputer
Url: NULL
Message: The current user has tried to access a secure area with an
unauthorized role.
Data: System.Collections.ListDictionaryInternal
TargetSite: Void AccessDenied(Boolean)
HelpLink: NULL
Source:



On 6/21/06, Ron Grabowski <rongrabowski@yahoo.com> wrote:
>
> My initial thought was this:
>
> <layout type="log4net.Layout.PatternLayout">
> <![CDATA[
> %counter) Exception Information
>
> *********************************************
>
> Exception Type: %exception{type}
>
> Message: %exception{message}
>
> Data: ???
>
> TargetSite: NULL
>
> HelpLink: NULL
>
> Source: NULL
> ]]>
> </layout>
>
> I don't think the current exception pattern implementation accepts
> additional parameters.
>
> I remember seeing a counter pattern somewhere but I can't seem to find
> it now.
>
> What should go in the "Data:" part of your example?
>
> Does EntLib really show this text "Void ExecuteScripts(System.String,
> System.String[], Boolean, Boolean)" or does it just show
> "ExecuteScripts"?
>
> I would create an ExtendedPatternLayout that registers additional
> converters and have your appenders use that.
>
> Create a JIRA issue if you think some of these patterns should be part
> of PatternLayout.
>
> --- Sean Carlin <seancarlin@gmail.com> wrote:
>
> >  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)
> >
>
>

Mime
View raw message