Friday, May 24, 2024

Logging in ASP.NET - Create Logs on ASP.NET

 public static void LogInfoToTextFile(string message)

        {

            bool CreateLog = false;


            if (ConfigurationManager.AppSettings["CreateLog"] != null)

            {

                CreateLog = Convert.ToBoolean(ConfigurationManager.AppSettings["CreateLog"]); //"CreateLog";

            }

            if (CreateLog)

            {

                string servicesPath = System.AppDomain.CurrentDomain.BaseDirectory + "/Log";

                servicesPath += "/LogFile";


                if (!Directory.Exists(servicesPath))

                {

                    Directory.CreateDirectory(servicesPath);

                }

                var files = new DirectoryInfo(servicesPath).GetFiles("*.txt");

                foreach (var file in files)

                {

                    if (DateTime.UtcNow - file.CreationTimeUtc > TimeSpan.FromDays(10))

                    {

                        File.Delete(file.FullName);

                    }

                }

                string filepath = servicesPath + "/";


                string fileName = DateTime.Now.Year + DateTime.Now.Month.ToString() + DateTime.Now.Day;

                fileName = filepath + fileName + ".txt";


                StreamWriter objwriter = new StreamWriter(fileName, true);

                objwriter.Write(Environment.NewLine + "" + message);

                objwriter.Close();

            }

        }


        public static void LogInfoToTextFile_New(string message)

        {

            //Komal14486 : 10/11/2019 - Adding log to check the flow

            bool CreateLog = true;


            if (ConfigurationManager.AppSettings["CreateLog"] != null)

            {

                CreateLog = Convert.ToBoolean(ConfigurationManager.AppSettings["CreateLog"]); //"CreateLog";

            }

            if (CreateLog)

            {

                string servicesPath = System.AppDomain.CurrentDomain.BaseDirectory + "/Log_New";

                servicesPath += "/LogFile";


                if (!Directory.Exists(servicesPath))

                {

                    Directory.CreateDirectory(servicesPath);

                }

                var files = new DirectoryInfo(servicesPath).GetFiles("*.txt");

                foreach (var file in files)

                {

                    if (DateTime.UtcNow - file.CreationTimeUtc > TimeSpan.FromDays(10))

                    {

                        File.Delete(file.FullName);

                    }

                }

                string filepath = servicesPath + "/";


                string fileName = DateTime.Now.Year + DateTime.Now.Month.ToString() + DateTime.Now.Day;

                fileName = filepath + fileName + ".txt";


                using (StreamWriter objwriter = new StreamWriter(fileName, true))

                {

                    objwriter.Write(Environment.NewLine + "" + message);

                    objwriter.Close();

                };

            }

        }


========================================

Call it in  Catch

 catch (Exception ex)

            {

                PageUtils.LogInfoToTextFile(string.Format("While fetching data in the method LoadZoneList() in the page CMSReport.aspx.cs:{0} - {1} ", ex.Message, DateTime.Now));

                //PageUtils.LogInfoToTextFile(ex.Message);

                //ProcessException(ex);

            }


==========================================

Using elmah

public void ProcessException(Exception ex)

        {

            Elmah.ErrorSignal.FromCurrentContext().Raise(ex);

            var errorMessage = new StringBuilder();


            errorMessage.Append(Environment.NewLine + "DateTime : " + DateTime.Now + Environment.NewLine);

            //errorMessage.Append("User : " + userId + Environment.NewLine);

            //errorMessage.Append("Class Name : " + className + Environment.NewLine);

            //errorMessage.Append("Method Name : " + methodName + Environment.NewLine);

            errorMessage.Append("Error Message : " + ex.Message + Environment.NewLine);

            errorMessage.Append("Stack Trace : " + ex.StackTrace + Environment.NewLine);

            errorMessage.Append("Inner Exception : " + ex.InnerException + Environment.NewLine);


            Logger.Write(errorMessage.ToString());

            SetErrorMesssage(ex.Message.ToString());

            LoggingDTO loggingDTO = new LoggingDTO();


            var objUserInfo = new UserInfo();

            if (HttpContext.Current.Session[Constants.UserInformation] != null)

            {

                objUserInfo = (UserInfo)HttpContext.Current.Session[Constants.UserInformation];

                loggingDTO.UserId = objUserInfo.UserId;

                loggingDTO.RoleId = objUserInfo.RoleMasterId;

                loggingDTO.OfficeId = objUserInfo.OfficeId;

                loggingDTO.IpAddress = System.Web.HttpContext.Current.Request.UserHostAddress == null ? "" : System.Web.HttpContext.Current.Request.UserHostAddress.ToString();

            }

            loggingDTO.LoggingType = 2;

            loggingDTO.ControlId = Convert.ToString(ex.Message);

            loggingDTO.PageName = Convert.ToString(ex.StackTrace);

            loggingDTO.ControlName = Convert.ToString(ex.InnerException);

            loggingDTO.CreatedDate = DateTime.Now;

            using (var client = ServiceClient<IMasterManager>.Create(ObjectConstants.MasterManager))

            {

                client.Instance.SaveLogging(loggingDTO);

            }


            //HttpContext.Current.Response.Redirect("/ErrorPage.aspx");

            // Navigate to the error page

        }


=====================================

 catch (Exception ex)

            {

                ProcessException(ex);

            }

No comments:

Post a Comment