用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - c#代码库

多用户报错访问日志

2019-11-07 作者:云代码会员举报

[c#]代码库

protected void Session_Start(Object sender, EventArgs e)
		{
			
            LogHelper.LogBasePath = Request.MapPath("/Log/");
        }
protected void Application_Error(Object sender, EventArgs e)
		{
            if (string.IsNullOrEmpty(LogHelper.LogBasePath))
            {
                LogHelper.LogBasePath = Request.MapPath("/Log/");
            }
            LogHelper.ExceptonInfoQueue.Enqueue(Server.GetLastError().ToString());
            Response.Redirect("/Error.aspx");
		}

 public class LogHelper
    {
        public static Queue<string> ExceptonInfoQueue = new Queue<string>();
        public static string LogBasePath;
        static LogHelper()
        {
            ThreadPool.QueueUserWorkItem(o =>
            {
                while (true)
                {

                    if (ExceptonInfoQueue.Count > 0)
                    {
                        string str = ExceptonInfoQueue.Dequeue();
                        //写入错误信息
                        string strFileName = DateTime.Now.ToString(@"\yyyy-MM-dd") + ".txt";
                        string absoluteFileName = Path.Combine(LogBasePath, strFileName);
                        lock (ExceptonInfoQueue)
                        {
                            using (FileStream fs = new FileStream(absoluteFileName, FileMode.Append, FileAccess.Write))
                            {
                                byte[] data = Encoding.Default.GetBytes(str);
                                fs.Write(data, 0, data.Length);
                            }
                        }
                    }

                }
            });
        }
    }


分享到:
更多

网友评论    (发表评论)


发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。