C#写入错误日志

 1  public void WriteLog(Exception ex)
 2     {
 3         try
 4         {
 5               String FolderPath = ConfigurationManager.AppSettings[""];
 6 
 7             string _path = "";
 8             if (!IsPhysicalPath(FolderPath))
 9                 _path = HttpContext.Current.Server.MapPath(FolderPath);
10             else _path = FolderPath;
11 
12             System.IO.DirectoryInfo dinfo = new DirectoryInfo(_path);
13 
14             if (!dinfo.Exists)
15                 dinfo.Create();
16             String filePath = _path + DateTime.Now.ToShortDateString() + "_Log.log";
17           
18             String logStr = String.Empty;
19             logStr += "发生时间:" + DateTime.Now.ToString() + "\r\n";
20             logStr += "请求地址:" + HttpContext.Current.Request.RawUrl + "\r\n";
21             logStr += "来源地址:" + ((HttpContext.Current.Request.UrlReferrer == null? "url地址栏直接输入" : HttpContext.Current.Request.UrlReferrer.AbsoluteUri) + "\r\n";
22             logStr += "访客 I P:" + HttpContext.Current.Request.UserHostAddress + "\r\n";
23             logStr += "错误类名:" + occurClass + "\r\n";
24             logStr += "错误方法:" + occurMethod + "\r\n";
25             logStr += "详细描述:" + ex.Message+"\r\n";
26             logStr += "跟踪信息:"+ex.StackTrace+"\r\n";
27             logStr += "-----------------------------------------------------------------------------------------------------------------\r\n\r\n\r\n";
28             File.AppendAllText(filePath,logStr, System.Text.Encoding.Unicode);
29         }
30         catch
31         { }
32     }
33     //true:绝对路径;false:相对路径
34     public static bool IsPhysicalPath(string Path)
35     {
36         string RegexString = @"\b[a-z]:\\.*";
37         MatchCollection Matchs = Regex.Matches(Path, RegexString, RegexOptions.IgnoreCase | RegexOptions.Compiled);
38         if (Matchs.Count > 0)
39             return true;
40         return false;
41     }


posted @ 2010-08-27 11:53  TSPWATER'S HOME  阅读(548)  评论(0编辑  收藏  举报