实习到现在已经接近三个月了,由于是校企联合培养计划,所以没有工资,所幸公司对于我们这些实习生并没有什么要求,刚开始我还觉得要做点什么才能学得快,可是到了后来,发现公司安排给我们的任务并不紧要,也不算太难。

到现在大约接触了2,3个模块的设计和实现了,起初,在文件读写和记录日志方面屡屡收到了批评,因外在大学的时候并没有记录日子的习惯,使得这个时候匆匆忙忙要养成在关键位置记录日志的习惯变得有些困难,

起初我是使用了postsharp的第三方插件来记录自己的运行日志的,可是后来发现在代码移植方面,如果其他电脑没有安装postsharp会使得移植过程变得复杂,特别是在部署的时候增加复杂度。

现在在进行新的模块的时候决定不再使用postsharp了,打算自己写一个简单的记录日志的类,来记录在关键位置的操作。

【改进版】

http://www.cnblogs.com/Bobdong/p/5032690.html

不废话,直接出代码,代码比较简单,实现的功能也非常简单。

可以直接复制粘贴来使用,同时,我也提供了源码给像我一样的初学者下载。

 1 using System;
 2 using System.IO;
 3
 4 namespace CustomerLog
 5 {
 6
 7     /// <summary>
 8     /// 保存日志
 9     /// </summary>
10     public class Logging
11     {
12         #region 日志分类
13         /// <summary>
14         /// 保存普通日志
15         /// </summary>
16         /// <param name="message"></param>
17         public static void Writelog(string message)
18         {
19             string logContent = string.Format("[{0}] =>{1}", DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"), message);
20             SetFile(@"Log.txt", logContent);
21         }
22
23         /// <summary>
24         /// 保存关键日志
25         /// </summary>
26         /// <param name="message"></param>
27         public static void WriteKeylog(string message)
28         {
29             var logContent = string.Format("[{0}]=>{1}", DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"), message);
30             SetFile(@"KeyLog.txt", logContent);
31         }
32
33         /// <summary>
34         /// 保存错误信息日志
35         /// </summary>
36         /// <param name="ex"></param>
37         public static void WriteBuglog(Exception ex)
38         {
39             var logContent = string.Format("[{0}]错误发生在:{1},\r\n 内容:{2}",
40                 DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"), ex.Source, ex.Message);
41             logContent += string.Format("\r\n [{0}] 跟踪:{1}", DateTime.Now.ToString("yyyy-MM-dd hh:mm:ss"),
42                 ex.StackTrace);
43             SetFile(@"BugLog.txt", logContent);
44         }
45         #endregion
46
47         #region 通用操作
48         /// <summary>
49         /// 标准化写入过程,继承之后可自定义写入内容
50         /// 默认保存在debug目录的Log目录下
51         /// </summary>
52         /// <param name="filename">文件名</param>
53         /// <param name="logContent">写入内容</param>
54         protected static void SetFile(string filename, string logContent)
55         {
56             Isexist(); // 判断Log目录是否存在
57             string errLogFilePath = Environment.CurrentDirectory + @"\Log\" + filename.Trim();
58             StreamWriter sw;
59             if (!File.Exists(errLogFilePath))
60             {
61                 FileStream fs1 = new FileStream(errLogFilePath, FileMode.Create, FileAccess.Write);
62                 sw = new StreamWriter(fs1);
63             }
64             else
65             {
66                 sw = new StreamWriter(errLogFilePath, true);
67             }
68             sw.WriteLine(logContent);
69             sw.Flush();
70             sw.Close();
71         }
72
73         // 判断是否存在日志文件
74         private static void Isexist()
75         {
76             string path = Environment.CurrentDirectory + @"\Log\";
77             if (!File.Exists(path))
78             {
79                 Directory.CreateDirectory(path);
80             }
81         }
82         #endregion
83     }
84 }

↓↓↓↓↓下载地址↓↓↓↓↓【目前只会用百度云盘分享,求大神教授更加好用的分享方式】

http://pan.baidu.com/s/1kTNcfdH

转载于:https://www.cnblogs.com/Bobdong/p/5015592.html

.net 创建属于自己的log类相关推荐

  1. Django站点管理、视图和URL(管理界面本地化、创建管理员、注册模型类、发布内容到数据库、定义视图、配置URLconf)

    1.Django站点管理 站点: 分为内容发布和公共访问两部分 内容发布的部分由网站的管理员负责查看.添加.修改.删除数据 Django能够根据定义的模型类自动地生成管理模块 使用Django的管理模 ...

  2. 由创建一个不能被继承的类引发的对象模型的思考

    昨天吃饭和宽妹讨论起以前看过的如何创建一个不能被继承的类,具体实现见 http://blog.csdn.net/kuaile123/article/details/21321471 同学提到了第一种方 ...

  3. C#xml创建修改读取删除帮助类XmlHelper.cs

    <strong><span style="color:#ff0000;">[XML帮助类]C#xml创建修改读取删除帮助类XmlHelper.cs < ...

  4. boost实用工具:创建一个禁止复制的类 noncopyable

    boost的noncopyable允许创建一个禁止复制的类,使用很简单,但很好用! C++ Code  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ...

  5. Java实训项目10:GUI学生信息管理系统 - 实现步骤 - 创建数据访问接口实现类

    文章目录 七.实现步骤 (六)创建数据访问接口实现类 1.创建学校数据访问接口实现类 单元测试:对CollegeDaoImpl进行单元测试 (1)编写测试方法testFindById() (2)编写测 ...

  6. php log日志管理,PHP日志LOG类定义与用法示例

    本文实例讲述了PHP日志LOG类定义与用法.分享给大家供大家参考,具体如下: /** * PHP log 类 */ class Config{ public static function getCo ...

  7. 创建一个商品类Product类,在该类中定义3个属性id,name,price和重写toString()方法

    ·创建一个商品类Product类,在该类中定义3个属性id,name,price和重写toString()方法,分别实现setter()和getter()方法,创建一个测试类,调用Product类的构 ...

  8. delphi 创建DBASE和FOXPRO两类DBF数据文件的差异

    delphi 创建DBASE和FOXPRO两类DBF数据文件的差异 delphi 创建DBASE和FOXPRO两类DBF数据文件的差异,主要有几点: 1.创建方法不同 DBASE的创建方法: Self ...

  9. 使用Angular cli(ng generate)创建组件、服务、类、路由、指令、管道

    日常angular开发中,相信不少人在创建新组件时,普遍会采用复制粘贴的方式创建新的组件或服务等.其实可以采用ng generate的方式快速创建组件.服务.类.路由等. 在使用angular cli ...

  10. Android -- Log日志调试(android.utl.log类)

    Android调试要通过模拟器运行,或者直接USB远程连接到一部手机调试.即使在不关闭模拟进行调试时候,也要经过编译.apk打包.上传apk.运行apk的过程,时间也不短,所以应该在程序固定一次运行中 ...

最新文章

  1. WINCE6.0+S3C2443下的activesync问题
  2. Java08-day08【API(概述、使用)、String-StringBuilder(概述、构造方法、特点、方法)、StringBuilder和String相互转化】
  3. C++习题 虚函数-计算图形面积
  4. python数据结构剑指offer-重建二叉树
  5. AVX2浮点向量运算
  6. arcpy 验证中心点是否位于图层之内
  7. python变量存为matlab,将matlab变量导出为python用法的文本
  8. 我的世界python造房子_创造属于自己的世界!教你如何在《我的世界》建造建筑...
  9. 算法导论第三版 21.2-3习题答案
  10. 【YOLOv5-6.x】设置可学习权重结合BiFPN(Add操作)
  11. presenting view controller Vs presented view controller
  12. vios接口虚拟服务器,虚拟VIOS服务器安装手册V1.0.doc
  13. 开源软件 介绍及地址
  14. netty-socketio+spring boot 长链接 实时通信 消息推送
  15. 实验整理(一)——钓鱼邮件攻击实验
  16. 9大电商平台开具发票页调研
  17. Java使用POI通过模板生成Word
  18. 命令行修改本地组策略_通过命令行从Windows进行本地组管理
  19. 传软银COO即将离职,孙正义痛失得力助手,或因20亿美元薪酬
  20. 2019中国开源年会总结

热门文章

  1. 手把手教你免费申请支持通配符的 SSL 证书
  2. IT人是这么过圣诞的……
  3. AndroidDeveloper Weekly No.5
  4. beego使用php,使用GO语言Beego框架开发一个简易留言板
  5. 27.用webpack自搭react和vue框架
  6. 云中树莓派(3):通过 AWS IoT 控制树莓派上的 Led
  7. 压力测试与负载测试的区别
  8. Magento开发文档(二):Magento配置
  9. ASP.net在线购物商城系统完全解析
  10. HDU 4335 What is N?(指数循环节)题解