.Net捕获网站异常信息记录操作日志
第一步:在Global.asax文件下的Application_Error()中写入操作日志
/// <summary>
/// 整个网站出现异常信息,都会执行此方法
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Application_Error(object sender, EventArgs e)
{
if (string.IsNullOrEmpty(Common.LogHelper.LogBasePath)) //文件的绝对物理路径
{
Common.LogHelper.LogBasePath = Request.MapPath("/Log");
}
//往错误消息的队列里面写一个错误消息
Common.LogHelper.ExcpetionInfoQueue.Enqueue(Server.GetLastError().ToString());
//整个网站出现了未捕获的异常,一般就是跳转到一个错误页面
//提醒错误,然后隔几秒跳回首页
Response.Redirect("/WebForm1.aspx"); }
第二步:日志操作文件类
using System;
using System.Collections.Generic;
using System.IO;
using System.Text;
using System.Threading;
using System.Web; namespace Common
{
/// <summary>
/// 日志文件操作类
/// </summary>
public class LogHelper
{
public static string LogBasePath; //物理绝对路径
public static Queue<string> ExcpetionInfoQueue = new Queue<string>(); //日志消息队列
static LogHelper()
{
ThreadPool.QueueUserWorkItem(o =>
{
while (true)
{
lock (ExcpetionInfoQueue)
{
if (ExcpetionInfoQueue.Count > )
{
//写入错误消息
string strFileName = DateTime.Now.ToString(@"yyyy-MM-dd") + ".txt";
string absoluteFileName = Path.Combine(LogBasePath,strFileName);
using (FileStream fs = new FileStream(absoluteFileName, FileMode.Append, FileAccess.Write))
{
string strError = ExcpetionInfoQueue.Dequeue(); //错误消息
byte[] buffer = Encoding.Default.GetBytes(strError);
fs.Write(buffer, , buffer.Length);
}
}
}
}
});
}
}
}
后续还会更新用log4Net记录报错日志消息
.Net捕获网站异常信息记录操作日志的更多相关文章
- asp.net core全局异常过滤并监控系统BUG将异常信息记录到日志
添加: using Dw.Util.Helper; using Microsoft.AspNetCore.Mvc.Filters; using System; using System.Collect ...
- 使用SpringBoot AOP 记录操作日志、异常日志
平时我们在做项目时经常需要对一些重要功能操作记录日志,方便以后跟踪是谁在操作此功能:我们在操作某些功能时也有可能会发生异常,但是每次发生异常要定位原因我们都要到服务器去查询日志才能找到,而且也不能对发 ...
- Java并发-UncaughtExceptionHandler捕获线程异常信息并重新启动线程
Java并发-UncaughtExceptionHandler捕获线程异常信息并重新启动线程 一.捕获异常并重新启用线程 public class Testun { public static voi ...
- Tomcat会话超时时怎样记录操作日志,满足安全审计要求
众所周知.在实际的Web应用程序中,会话管理一般都採用Web容器会话管理功能. 使用Tomcat做Webserver也是如此,并且从安全的角度考虑,尽量避免去更改和干预Web容器的会话管理功能. To ...
- Appfuse:记录操作日志
appfuse的数据维护操作都发生在***form页面,与之对应的是***FormController,在Controller中处理数据的操作是onSubmit方法,既然所有的操作都通过onSubmi ...
- MVC 记录操作日志与过滤特殊字符
最近进行的MVC系统需要用到记录操作日志和过滤特殊字符的功能,如果每个action中都调用记录日志的方法就太麻烦了,所以根据需要结合mvc的过滤机制 写了个特殊字符验证与记录操作日志的公用类: pub ...
- Linux中生成Core Dump系统异常信息记录文件的教程
Linux中生成Core Dump系统异常信息记录文件的教程 http://www.jb51.net/LINUXjishu/473351.html
- C#将异常信息添加到日志
C#将程序抛出的异常信息添加到错误日志 错误日志是软件用来记录运行时出错信息的文本文件.编程人员和维护人员等可以利用错误日志对系统进行调试和维护. 为程序添加错误日志的好处是当程序有运行错误时,根据错 ...
- spring-boot-route(十七)使用aop记录操作日志
在上一章内容中--使用logback管理日志,我们详细讲述了如何将日志生成文件进行存储.但是在实际开发中,使用文件存储日志用来快速查询问题并不是最方便的,一个优秀系统除了日志文件还需要将操作日志进行持 ...
随机推荐
- 裸奔的支付X聊天,你还敢用吗?
- 语音消息 使用HTTP明文传输,没有任何加密措施,使用域名为up-mayi.django.t.taobao.com,从报文中可以看出,语音消息是以文件形式在网络中传输的,下图为一次语音的发送传输过 ...
- Android框架Volley使用:Post请求实现
首先我们在项目中导入这个框架: implementation 'com.mcxiaoke.volley:library:1.0.19' 在AndroidManifest文件当中添加网络权限: < ...
- Nginx 配置实例-动静分离
1.什么是动静分离 通过 location 指定不同的后缀名实现不同的请求转发.通过 expires 参数设置,可以使浏 览器缓存过期时间,减少与服务器之前的请求和流量.具体 Expires 定义: ...
- ntp服务设置开机自启动失败
设置了ntpd开机自启动,重启服务器ntpd没有自启动 1.需要禁掉chronyd.service: systemctl disable chronyd.service 2.手动启动ntpd: sys ...
- Linux常见系统命令和远程管理命令
系统命令 时间与日期: date(查看系统时间) cal (查看本月日历) cal -y (查看一年12个月的日历) 磁盘信息: df -h (查看磁盘剩余空间) #重点放于过载点的/ 目录下 du ...
- HashMap底层实现及原理
注意:文章的内容基于JDK1.7进行分析.1.8做的改动文章末尾进行讲解. 一.先来熟悉一下我们常用的HashMap: 1.HashSet和HashMap概述 对于HashSst及其子类而 ...
- pushgateway
下载pushgateway wget https://github.com/prometheus/pushgateway/releases/download/v0.9.0/pushgateway-0. ...
- lua 8 字符串
转自:http://www.runoob.com/lua/lua-strings.html 字符串或串(String)是由数字.字母.下划线组成的一串字符. Lua 语言中字符串可以使用以下三种方式来 ...
- 元昊讲django框架
一 什么是web框架? 框架,即framework,特指为解决一个开放性问题而设计的具有一定约束性的支撑结构,使用框架可以帮你快速开发特定的系统,简单地说,就是你用别人搭建好的舞台来做表演. 对于所有 ...
- Ant风格路径表达式
ANT通配符有三种: ? 匹配任何单字符 * 匹配0或者任意数量的字符 ** 匹配0或者更多的目录 举例: /project/*.a 匹配项目根路径下所有在project路径下的.a文件 /proje ...