经过终止,由于未经处理的老大

by admin on 2019年2月28日

今天遭逢了多个顺序甘休的题材:

Window 由于未经处理的相当,进度终止。,window进度终止

前些天遇见了贰个顺序结束的标题:

应用程序: BussinessService.exe Framework 版本: v4.0.30319 证实:
由于未经处理的这一个,进度终止。
可怜新闻: System.InvalidOperationException 在……

 意外的报错,程序自个儿并未日记记录下来,那时候能够到“总计机管理”——“windows日志”——依照时间及来自定位你的次第报错的日志——“详细音信”

home88一必发 1

经过终止,由于未经处理的老大。 

由于未经处理的老大,进度终止。,window进度终止
明日蒙受了贰个主次截止的难题: 应用程序: Bussiness瑟维斯.exe Framework
版本: v4.0.30…

经过终止,由于未经处理的老大。前些天遇到了一个程序结束的题材:

C#落到实处程序单例日志输出,

home88一必发,对于一个全部的次第系统,贰个日记记录是少不了的。能够用它来记录程序在运转进度中的运市价况和报错消息。比如,那一个不想经过弹框提醒的谬误,程序执行过程中抓获的可怜等。

首先,在你的解决方案中,适当的目录中新建1个类,比如 LogManager:

编纂如下代码:

 1     /// <summary>
 2     /// 日志管理
 3     /// </summary>
 4     public class LogManager
 5     {
 6         private string _logDir; // 日志文件存放目录
 7 
 8         private static LogManager m_LogInstance; // 静态单例对象
 9         // 静态构造函数
10         static LogManager()
11         {
12             m_LogInstance = new LogManager();
13         }
14         // 私有构造函数(必备函数,不允许外部对该类进行实例化)
15         private LogManager()
16         {
17             _logDir = Environment.CurrentDirectory + "\\Log";
18             this.DelOldFile();
19         }
20         /// <summary>
21         /// 属性获取单例对象
22         /// </summary>
23         public static LogManager LogInstance
24         {
25             get { return m_LogInstance; }
26         }
27 
28         /// <summary>
29         /// 写入一条日志记录
30         /// </summary>
31         /// <param name="pLog">日志记录内容</param>
32         public void WriteLog(string pLog)
33         {
34             lock (this._logDir) //排它锁:防止主程序中出现多线程同时访问同一个文件出错
35             {
36                 // 根据时间创建一个日志文件
37                 var vDT = DateTime.Now;
38                 string vLogFile = string.Format("{0}\\Log{1}{2}{3}.log",_logDir,vDT.Year,vDT.Month,vDT.Day);
39                 // 创建文件流,用于写入
40                 using (FileStream fs = new FileStream(vLogFile, FileMode.Append))
41                 {
42                     StreamWriter sw = new StreamWriter(fs);
43                     sw.WriteLine("{0}  >>  {1}", vDT.ToString("yyyy-MM-dd HH:mm:ss"), pLog);
44                     sw.Flush();
45                     sw.Close();
46                     fs.Close();
47                 }
48             }
49         }
50 
51         // 删除过期文件
52         private void DelOldFile()
53         {
54             // 遍历指定文件夹下所有子文件,将一定期限前的日志文件删除。
55             if (!Directory.Exists(this._logDir))
56             {
57                 // 如果文件夹目录不存在
58                 Directory.CreateDirectory(this._logDir);
59                 return;
60             }
61 
62             var vFiles = (new DirectoryInfo(this._logDir)).GetFiles();
63             for (int i = vFiles.Length - 1; i >= 0; i--)
64             { 
65                 // 指定条件,然后删除
66                 if (vFiles[i].Name.Contains("Log"))
67                 {
68                     if ((DateTime.Now - vFiles[i].LastWriteTime).Days > 7)
69                     {
70                         vFiles[i].Delete();
71                     }
72                 }            
73             }
74         }
75 
76     } // end class

其间,第玖行-第二6行是关于实现单例格局的一种方法。那样,在您程序的急需地方执行:

LogManager.LogInstance.WriteLog(“产生了一条日志记录”);

就会在钦定文件中参数一条日子记录了。

即:2014-11-23 23:53:45  >>  产生了一条日志记录

 

对于一个完好无损的顺序系统,3个日志记录是不可或缺的。能够用它来记录程序在运作进程中的运市价况和报错信…

应用程序: BussinessService.exe Framework 版本: v4.0.30319 证实:
由于未经处理的十分,进度终止。
丰盛消息: System.InvalidOperationException 在……

应用程序: BussinessService.exe Framework 版本: v4.0.30319 表达:
由于未经处理的不行,进度终止。
尤其音信: System.InvalidOperationException 在……

 意外的报错,程序自己没有日记记录下来,这时候能够到“总计机管理”——“windows日志”——遵照时间及来源定位你的程序报错的日志——“详细消息”

 意外的报错,程序本人并未日记记录下来,那时候能够到“总括机管理”——“windows日志”——依据时间及来自定位你的顺序报错的日志——“详细音信”

home88一必发 2

home88一必发 3

 

 

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图