zoukankan      html  css  js  c++  java
  • 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();
    }
    }
    }

  • 相关阅读:
    一般处理程序使用Session的方法
    EF Code First教程-03 数据库迁移Migrator
    EF Code First教程-02 约定配置
    EF Code First教程-01 创建一个简单的Code First程序
    构造方法后面加上了:base
    sql server 还原数据库时提示数据库正在使用,无法进行操作的解决方法
    使单元格td内部都是超链接
    设计模式~简单工厂模式(Factory)
    jQuery重置form表单的方法
    当编辑器中出现很一条一条的点时
  • 原文地址:https://www.cnblogs.com/kingsmart/p/13426161.html
Copyright © 2011-2022 走看看