• C#开发中,添加错误日志功能,并自定义错误页面


    参考地址:https://blog.csdn.net/yiyelanxin/article/details/72778972

    在Global.asax中,添加Application_Error如下代码.

    protected void Application_Error()
    {
    var e = Server.GetLastError();
    var httpError = e as HttpException;

    //错误日志
    //在出现未处理的错误时运行的代码
    Exception ex = Server.GetLastError().GetBaseException();
    string errorTime = "异常时间:" + DateTime.Now.ToString();
    string errorAddress = "异常地址:" + Request.Url.ToString();
    string errorInfo = "异常信息:" + ex.Message;
    string errorSource = "错误源:" + ex.Source;
    string errorType = "运行类型:" + ex.GetType();
    string errorFunction = "异常函数:" + ex.TargetSite;
    string errorTrace = "堆栈信息:" + ex.StackTrace;
    //Server.ClearError();
    System.IO.StreamWriter writer = null;
    try
    {
    lock (this)
    {
    //写入日志
    string path = string.Empty;
    path = Server.MapPath("~/ErrorLogs/");
    //不存在则创建错误日志文件夹
    if (!Directory.Exists(path))
    {
    Directory.CreateDirectory(path);
    }
    path += string.Format(@"{0}.txt", DateTime.Now.ToString("yyyy-MM-dd"));

    writer = !File.Exists(path) ? File.CreateText(path) : File.AppendText(path); //判断文件是否存在,如果不存在则创建,存在则添加
    writer.WriteLine("用户IP:" + Request.UserHostAddress);
    writer.WriteLine("错误编码:" + httpError.GetHttpCode());
    writer.WriteLine(errorTime);
    writer.WriteLine(errorAddress);
    writer.WriteLine(errorInfo);
    writer.WriteLine(errorSource);
    writer.WriteLine(errorType);
    writer.WriteLine(errorFunction);
    writer.WriteLine(errorTrace);
    writer.WriteLine("********************************************************************************************");
    }
    }
    finally
    {
    if (writer != null)
    {
    writer.Close();
    }
    }

    /////自定义错误页面

    //默认500
    if (httpError == null)
    {
    Server.Transfer("~/Errors/500.html");
    //Response.WriteFile("~/Errors/500.html");
    Server.ClearError();
    }
    else
    {
    var errorCode = httpError.GetHttpCode();
    if (errorCode == 404)
    {
    Server.Transfer("~/Errors/404.html");
    Server.ClearError();
    }
    }
    }

  • 相关阅读:
    SharpDeveloeper开发ASP.NET MVC汗流浃背
    暂停更新文章通知
    一步步学习NHibernate(10)——连接查询和子查询(2)
    一步步学习NHibernate(9)——连接查询和子查询(1)
    20165103 2017-2018-2 课程总结
    Android开发学习——UI篇1.0
    团队作业(三):确定分工
    20165103实验三 Java面向对象程序设计
    查漏补缺
    20165103 实验三 Java面向对象程序设计
  • 原文地址:https://www.cnblogs.com/kingsmart/p/13426161.html
Copyright © 2020-2023  润新知