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

本文共 2884 字,大约阅读时间需要 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

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

转载地址:http://yhuyl.baihongyu.com/

你可能感兴趣的文章
作业四 任务分解(WBS)
查看>>
eclipse 创建maven 项目 动态web工程完整示例
查看>>
laravel中的命名公约规范及relation N+1问题
查看>>
Convolution of measures and one application
查看>>
逆序对 线段树&树状数组 (重制版)
查看>>
从此错位(相减)无计算
查看>>
RESTful API 设计最佳实践
查看>>
想要成为一个人,先按那个人的要求去做,你自然就成了那个人(转)
查看>>
Codeforces Round #425 (Div. 2) - A
查看>>
mysql学习【第12篇】:数据库之视图,触发器,事务等
查看>>
hdu4982 Goffi and Squary Partition (DFS解法)
查看>>
Bash Shell 获取进程 PID
查看>>
RHEL7安装部署RabbitMQ
查看>>
关于站在移动物上的问题
查看>>
UVA 11205 The broken pedometer
查看>>
直击微软MIX11 聚焦IE10、Silverlight5、WP7
查看>>
MVC工作原理
查看>>
斐波那契数列Log(n)算法
查看>>
信息处理,分而治之-- ESFramework 使用技巧
查看>>
SQL Server 查询计划总结
查看>>