博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
c#简单自定义异常处理日志辅助类
阅读量:6824 次
发布时间:2019-06-26

本文共 2936 字,大约阅读时间需要 9 分钟。

    简单写了一个错误日志记录辅助类,记录在此。

    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

      简单,可以满足日常需要。有一点就是日志文件按照日期命名,会不会随着时间越来越多。需再考虑......

转载于:https://www.cnblogs.com/wolf-sun/p/3336533.html

你可能感兴趣的文章
Android实例-如何使用系统剪切板(XE8+小米2)
查看>>
BAT-显示桌面图标
查看>>
PDO vs. MySQLi 选择哪一个?(PDO vs. MySQLi: Which Should You Use?)-转载
查看>>
信息安全系统设计基础第七周总结
查看>>
创建线程的三种方式
查看>>
Android项目依赖于第三方库(非jar包文件)
查看>>
cas HttpServletRequestWrapperFilter
查看>>
【Javascript第二重境界】函数
查看>>
SpringBoot 与 Web开发
查看>>
JavaWeb 三层框架
查看>>
BOOL, BOOLEAN, bool
查看>>
Mac 下 SVN 的使用
查看>>
简述session
查看>>
Android APK反编译教程(带工具)
查看>>
SSO单点登录学习总结(1)——单点登录(SSO)原理解析
查看>>
Windows学习总结(12)——Windows 10系统开始运行-cmd命令大全
查看>>
单元测试过程
查看>>
新学的的matplotlib库~~~~
查看>>
【树形dp】vijos P1180 选课
查看>>
实验三
查看>>