1

I want to log Client IP Address, Browser Name and Windows Authenticated User Name using log4net library.

I'm trying in this way, but its not working.

So Please help me out.

Main issue is I don't know how to add multiple custom properties in log4net.

Please help me.

Server Side Code.

log4net.GlobalContext.Properties["Hostname"] = GetIP();
            log4net.GlobalContext.Properties["Browser"] =  HttpContext.Current.Request.Browser.Type;
            log4net.GlobalContext.Properties["username"] = HttpContext.Current.Request.LogonUserIdentity.Name;

Web.Config Setting:

<conversionPattern value="%date %property{Hostname, username, Browser} [%thread]&#xD;&#xA;          %-5level %logger - %message%newline"
                                           />

If any other setting is required, Please let me know.

Or is there any other way to do this, Please let me know.

1
  • I think you should use the ThreadContext instead of the GlobalContext to avoid one thread from overwriting the values of another and as a result logging incorrect information. Commented May 28, 2019 at 18:16

2 Answers 2

1

To give you a more 'elegant' solution for this: use ndc.

<conversionPattern value="%-4timestamp [%thread] %-5level %logger %ndc - %message%newline" />

using Nested diagnostic context in code (NDC):

using(log4net.NDC.Push("["+GetIP() + " - " + HttpContext.Current.Request.Browser.Type + " - " + HttpContext.Current.Request.LogonUserIdentity.Name+"]")
{
    //your code
    //all log messages will contain the ndc string with the using.
}
Sign up to request clarification or add additional context in comments.

Comments

0

It can be done in this way, Its useful for others.

<conversionPattern value="%date [%property{Hostname}] [%property{UserName}] [%property{Browser}] [%property{WindowsLogin}] [%thread]&#xD;&#xA;          %-5level %logger - %message%newline"
                                           />

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.