zoukankan      html  css  js  c++  java
  • ExpandStackTrace

            /// <summary>
            /// 把一个异常的堆栈信息处理后返回一个字符串
            /// 一个异常可能是另一个异常实例引发的,这里通过递归把所有的异常消息都处理并返回信息,最后形成一个包含异常足够多信息的字符串
            /// </summary>
            /// <param name="ex">传输的异常</param>
            /// <returns>返回的字符串</returns>
            public static string ExpandStackTrace(Exception ex)
            {
                StringBuilder buffer = new StringBuilder(1024);
                while (ex != null)
                {
                    if (buffer.Length > 0)
                    {
                        buffer.Insert(0, ex.StackTrace + "\nRe-Thrown (" + ex.Message + ")\n");
                    }
                    else
                    {
                        buffer.Insert(0, ex.StackTrace + "\n");
                    }
                    ex = ex.InnerException;
                }
                buffer.Replace(" in ", "\n\tin\n");
                return buffer.ToString();
            }

            public static void AppendLog(string content)
            {
                HttpContext context = HttpContext.Current;
                string path = String.Concat(context.Server.MapPath("~/Log/"), DateTime.Now.ToString("yyyyMMdd"), ".log");
                using (StreamWriter sw = new StreamWriter(path, true, Encoding.Default))
                {
                    sw.Write(DateTime.Now.ToString());
                    sw.Write('\t');
                    sw.Write(HttpUtils.RemoteIP);
                    sw.Write('\t');
                    sw.Write(context.Request.UserAgent);
                    sw.Write('\t');
                    sw.Write(context.Request.HttpMethod);
                    sw.Write('\t');
                    sw.Write(context.Request.Url.PathAndQuery);
                    sw.Write('\t');
                    sw.Write(content);
                    string referer = context.Request.ServerVariables["HTTP_REFERER"];
                    if (referer != null)
                    {
                        sw.Write('\t');
                        sw.Write("referer:");
                        sw.Write(referer);
                    }
                    sw.WriteLine();
                }
            }
    

  • 相关阅读:
    修改linux命令行提示符颜色
    passwd命令
    用户与用户组
    计划任务
    sed简单用法
    sed命令实现对文件内容的添加
    C#颜色选择器的调用操作
    插入排序算法的学习
    二叉树的学习记录
    判断两个单链表是否相交及相交的第一个节点
  • 原文地址:https://www.cnblogs.com/Googler/p/1950230.html
Copyright © 2011-2022 走看看