简单写了一个错误日志记录辅助类,记录在此。
Loghelper类
1 using System; 2 using System.Collections.Generic; 3 using System.IO; 4 using System.Linq; 5 using System.Text; 6 using System.Threading.Tasks; 7 8 namespace LogHelper 9 { 10 public static class LogHelper 11 { 12 //拼接日志目录 13 static string appLogPath = AppDomain.CurrentDomain.BaseDirectory + "log/"; 14 /// <summary> 15 /// 写入日志 16 /// </summary> 17 /// <param name="ex">异常对象</param> 18 public static void WriteLog(Exception ex) 19 { 20 //日志目录是否存在 不存在创建 21 if (!Directory.Exists(appLogPath)) 22 { 23 Directory.CreateDirectory(appLogPath); 24 } 25 StringBuilder logInfo = new StringBuilder(""); 26 string currentTime = System.DateTime.Now.ToString("[yyyy-MM-dd HH:mm:ss]"); 27 if (ex != null) 28 { 29 logInfo.Append("\n"); 30 logInfo.Append(currentTime + "\n"); 31 //获取描述当前的异常的信息 32 logInfo.Append(ex.Message + "\n"); 33 //获取当前实例的运行时类型 34 logInfo.Append(ex.GetType() + "\n"); 35 //获取或设置导致错误的应用程序或对象的名称 36 logInfo.Append(ex.Source + "\n"); 37 //获取引发当前异常的方法 38 logInfo.Append(ex.TargetSite + "\n"); 39 //获取调用堆栈上直接桢的字符串表示形式 40 logInfo.Append( ex.StackTrace + "\n"); 41 } 42 System.IO.File.AppendAllText(appLogPath + DateTime.Now.ToString("yyyy-MM-dd") + ".log", logInfo.ToString()); 43 } 44 45 } 46 }
测试代码:
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Text; 5 using System.Threading.Tasks; 6 7 namespace LogHelper 8 { 9 class Program 10 { 11 static void Main(string[] args) 12 { 13 try 14 { 15 while (true) 16 { 17 int a = Convert.ToInt32(Console.ReadLine()); 18 Console.WriteLine("您输入的是:" + a); 19 } 20 21 } 22 catch (Exception ex) 23 { 24 25 LogHelper.WriteLog(ex); 26 } 27 Console.Write("OVER"); 28 Console.Read(); 29 } 30 } 31 }
日志文件结果:
1 [2013-09-24 11:15:45] 2 输入字符串的格式不正确。 3 System.FormatException 4 mscorlib 5 Void StringToNumber(System.String, System.Globalization.NumberStyles, NumberBuffer ByRef, System.Globalization.NumberFormatInfo, Boolean) 6 在 System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal) 7 在 System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) 8 在 System.Convert.ToInt32(String value) 9 在 LogHelper.Program.Main(String[] args) 位置 f:\SUN.TEST\LogHelper\LogHelper\Program.cs:行号 17
简单,可以满足日常需要。有一点就是日志文件按照日期命名,会不会随着时间越来越多。需再考虑......
博客地址: | http://www.cnblogs.com/wolf-sun/ |
博客版权: | 本文以学习、研究和分享为主,欢迎转载,但必须在文章页面明显位置给出原文连接。 如果文中有不妥或者错误的地方还望高手的你指出,以免误人子弟。如果觉得本文对你有所帮助不如【推荐】一下!如果你有更好的建议,不如留言一起讨论,共同进步! 再次感谢您耐心的读完本篇文章。 转自:http://www.cnblogs.com/wolf-sun/p/3336533.html |