Click here to Skip to main content
15,881,204 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
I want To catch the unhandled exception in the entire application.What I should do to this.
Posted

See below article for unhandled exception handling. really helpful


unhandledexceptions
 
Share this answer
 
Comments
raju melveetilpurayil 11-Nov-10 14:52pm    
Good Answer
thatraja 12-Nov-10 0:44am    
Yeah, Good one
Sandesh M Patil 12-Nov-10 9:57am    
Thanks raja and raju
Hi,
try to handle exceptions in global.asax file in Application_Error event.

http://support.microsoft.com/kb/306355[^]

http://www.15seconds.com/issue/030102.ht[^]
 
Share this answer
 
You can use Log4Net logging mechanism and log your unhandled exceptions in a log file in Global.asax's Application_Error .

Link to Log4Net : Log4Net[^]

C#
protected void Application_Error(object sender, EventArgs e)
       {
           System.Web.HttpContext context = HttpContext.Current;
           Exception ex = context.Server.GetLastError().GetBaseException();


               CLogger.WriteLog(ELogLevel.ERROR, "URL : " + context.Request.Url.ToString()+"\n");

               CLogger.WriteLog(ELogLevel.ERROR, "FILE : " + context.Request.FilePath.ToString()+"\n");

               CLogger.WriteLog(ELogLevel.ERROR, "USER : " + context.User.Identity.Name+"\n");

               CLogger.WriteLog(ELogLevel.ERROR, "MESSAGE : " + ex.Message+"\n");
               CLogger.WriteLog(ELogLevel.ERROR, "SOURCE : " + ex.Source+"\n");
               CLogger.WriteLog(ELogLevel.ERROR, "STACK TRACE : " + ex.StackTrace+"\n");
               CLogger.WriteLog(ELogLevel.ERROR, "INNER EXCEPTION : " + ex.InnerException+"\n");
               CLogger.WriteLog(ELogLevel.ERROR, "---------------------------------------------------------------------------------------------\n");
           }


Implementation of CLogger class :

C#
using log4net;
using log4net.Config;


C#
public static class CLogger
   {
       #region Members
       private static readonly ILog logger = LogManager.GetLogger(typeof(CLogger));

       #endregion

       #region Constructors
       static CLogger()
       {
           XmlConfigurator.Configure();
       }
       #endregion

       #region Methods

       public static void WriteLog(ELogLevel logLevel, String log)
       {
           if (logLevel.Equals(ELogLevel.DEBUG))
           {
               logger.Debug(log);
           }
           else if (logLevel.Equals(ELogLevel.ERROR))
           {
               logger.Error(log);
           }
           else if (logLevel.Equals(ELogLevel.FATAL))
           {
               logger.Fatal(log);
           }
           else if (logLevel.Equals(ELogLevel.INFO))
           {
               logger.Info(log);
           }
           else if (logLevel.Equals(ELogLevel.WARN))
           {
               logger.Warn(log);
           }
       }
       #endregion
   }


You have to add custom section under web.config file based on what kind of logging you are using (XML, SQL Server, Plain text file etc.)


XML
<log4net>
        <appender name="LogFileAppender" type="log4net.Appender.FileAppender">
            <param name="File" value="D:\ApplicationLog.log"/>
            <param name="AppendToFile" value="true"/>
            <layout type="log4net.Layout.PatternLayout">
                <param name="Header" value=""/>
                <param name="Footer" value=""/>
                <param name="ConversionPattern" value="%d [%t] %-5p %m%n"/>
            </layout>
        </appender>
        <root>
            <level value="All"/>
            <appender-ref ref="LogFileAppender"/>
        </root>
    </log4net>
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900