简单写了一个错误日志记录辅助类,记录在此。
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 LogHelper11 {12 //拼接日志目录13 static string appLogPath = AppDomain.CurrentDomain.BaseDirectory + "log/";14 ///15 /// 写入日志16 /// 17 /// 异常对象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 Program10 {11 static void Main(string[] args)12 {13 try14 {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.FormatException4 mscorlib5 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
简单,可以满足日常需要。有一点就是日志文件按照日期命名,会不会随着时间越来越多。需再考虑......