logging-log4net-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Stefan Bodewig <bode...@apache.org>
Subject Re: How to set the category and EventId in EventLog log4net
Date Tue, 25 Oct 2011 14:51:50 GMT
On 2011-10-25, Venkatasamy, Vanitha wrote:

> I am using log4net to log the errors in my application . Everything works fine for the
initial setup and logging. Now I want to set the Category and Event in the Event log.

> I am using the below code to log the EventID  ,but not sure about the category.

>       log4net.ThreadContext.Properties["EventID"] = 5;

This should work using the Category property as you later show in your
own post.  This is a new feature of 1.2.11, though, the category is
fixed in 1.2.10 and earlier.

>                 log4net.ThreadContext.Properties["Category"] = "500";

should work as well as

                 log4net.ThreadContext.Properties["Category"] = 500;

> Also how to differentiate the error levels [like i am getting the
> error message from Global.asax and logging the message to
> Eventlogs.But all the errors are going to log.error as below

Not sure I follow you here.

>           if ((log.IsErrorEnabled) && ((checkException.GetHttpCode() == 500)
|| (checkException.GetHttpCode() == 404)))
>            {

>                 if(checkException.GetHttpCode() == 500)
>                 log4net.ThreadContext.Properties["Category"] = "500";
>                 else
>                 log4net.ThreadContext.Properties["Category"] = "404";

>                 log.Error("Error" + sbErrorMessage.ToString() );

>            }
>             else if (log.IsInfoEnabled)
>             {
>                 log.Warn("Information" + sbErrorMessage.ToString());
>             }

>            else if (log.IsWarnEnabled)
>            {
>                log.Info("Warning" + sbErrorMessage.ToString());
>            }

You have likely swapped IsInfoEnabled and IsWarnEnabled (as you use Warn
if IsInfoEnabled and vice versa).  Also note that IsWarnEnabled implies
IsInfoEnabled so you never hit that last branch.

> In addition ,I am not quite clear aout getting the Error,Warning and
> Information separately ..Like if i get an "InvalidOperationException"
> it's an warning but the httpcode is 500 and it gets logged as
> "Error". I tried to get sbErrorMessage.innerExeception but its null.

You mean you want to switch the level on the type of exception raised?
Where is this code, inside Global.asax Application_Error method?  Take a
look at Server.GetLastError and maybe unwrap (i.e. look at the
InnerException) if it is a HttpUnhandledException.

Stefan

Mime
View raw message