logging-log4net-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Venkatasamy, Vanitha" <Vanitha.Venkatas...@xpandcorp.com>
Subject How to use log4net in dll
Date Wed, 17 Aug 2011 19:24:24 GMT
Hi,

After spending a week for the log4net implementation which has to log errors from both aspx
and asp files , i am still out with no luck. This is my scenario, my project contains both
asp and aspx pages. The aspx page errors are captured in Globals.asax and send to Errorlogging.dll
,where i have log4net implemention to log the errors to EventViewer and its works just fine.

Other part is for ASP pages ,i am accesing the same Errorlogging.dll ,but different method
to log the error. Here isDebugenabled is true,but the errors are not logged into the EventViewer.

1.I am using the same Eventviewer log file for both methods

2.The method which logs aspx errors ,take the configurations from web.config

3.But for the method which logs asp errors,i am using seperate log4net.config file.

Questions

Do i need to maintain two diffferent config's for each methods?

I dont think its permission issue, bse the other method works just fine.

Only thing is the config section .

Is there any locking issue here

Thanks,

CODE
public static readonly ILog log = LogManager.GetLogger(typeof(ErrorLogging).Name);
        public ErrorLogging()
        {
        }
//ASP
        public String logEventErrorASP(String sourceName, String logName, String objErr, String
strBotListPath)
        {
         //   log4net.Config.XmlConfigurator.ConfigureAndWatch(new FileInfo(AppDomain.CurrentDomain.SetupInformation.ApplicationBase
+ "log4net.config"));
            log4net.Config.XmlConfigurator.ConfigureAndWatch(new FileInfo(Path.GetDirectoryName(Assembly.GetAssembly(GetType()).Location)
+ @"\" + "log4net.config"));

            String tempVar=Path.GetDirectoryName(Assembly.GetAssembly(GetType()).Location)
+ @"\" + "log4net.config";


            //log4net.Config.XmlConfigurator.Configure();
            //log4net.ThreadContext.Properties["EventID"] = 5;

            String tempdata = string.Empty;
            if (!System.Diagnostics.EventLog.SourceExists(sourceName))
            {
                tempdata = sourceName + logName + objErr + strBotListPath;
                System.Diagnostics.EventLog.CreateEventSource(sourceName, logName);
            }
            else
            {
                // Exception ex = (Exception)objErr;

                if (log.IsErrorEnabled)
                {
                    log.Error("There is an error " + objErr);
                    tempdata = "Warning ";
                }

                if (log.IsWarnEnabled)
                {
                    tempdata = tempdata + "Fatal";
                    try
                    {
                        log.Warn(" Unhandled error!" + objErr);
                    }
                    catch (Exception ex)
                    {
                        tempdata = tempdata + ex.ToString();
                    }

                }

            }



            return tempdata + "   "+ tempVar;
            //return ConfigurationSettings.AppSettings["log4net.config"].ToString();

        }
//ASP.NET
        public String logEventError(String sourceName, String logName, HttpContext errContext,
HttpRequest errRequest, Exception objErr,  string strBotListPath)
        {
            log4net.Config.XmlConfigurator.Configure();
            log4net.ThreadContext.Properties["EventID"] = 5;
           if (!System.Diagnostics.EventLog.SourceExists(sourceName))
            {

                System.Diagnostics.EventLog.CreateEventSource(sourceName, logName);
            }

            if (log.IsErrorEnabled)
            {
                log.Error("Page Load failed : " + objErr);
            }
            //Custom Error Page
            string strErrorPage;

            HttpException checkException = new HttpException();

            if (objErr.GetType() == typeof(HttpException))
            {
                checkException = (HttpException)objErr;
            }


            if (checkException.GetHttpCode() == 404)
            {
                strErrorPage = "~/404.aspx";
            }
            else
            {
                strErrorPage = "~/500.aspx";
            }

            //if (blnLog404 || checkException.GetHttpCode() != 404)
            //{
            if (File.Exists(strBotListPath))
            {
                XmlDocument document = new XmlDocument();
                document.Load(strBotListPath);

                XmlNodeList xmlUserAgentList = document.SelectNodes("//UserAgent");
                foreach (XmlNode node in xmlUserAgentList)
                {
                    string botName = node.InnerText.ToString();
                    //string botName = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;
SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)";
                    bool isBot = errRequest.ServerVariables["ALL_RAW"].ToUpper().Contains(botName.ToUpper());

                    if (isBot)
                    {
                        return strErrorPage;
                    }
                }
            }

            return strErrorPage;
        }

________________________________
This message contains Devin Group confidential information and is intended only for the individual
named. If you are not the named addressee you should not disseminate, distribute or copy this
e-mail.
Please notify the sender immediately by e-mail if you have received this e-mail in error and
delete this e-mail from your system. E-mail transmissions cannot be guaranteed secure, error-free
and information could be intercepted, corrupted, lost, destroyed, arrive late, incomplete,
or contain viruses. The sender therefore does not accept liability for errors or omissions
in the contents of this message which may arise as result of transmission. If verification
is required please request hard-copy version.

Mime
View raw message