C# 上位机学习之简单粗暴法3_程序运行日志记录
我们编写好程序后,希望能记录程序运行的情况,特别是一些数据采集类的软件,例如能源数据采集系统,有时断网需要知道时间、原因等信息,我们需要编写日志文件,我的想法很简单,事件发生后记录到txt文件就可以了,开整
看起来有点复杂,能不能简单点:
1、建立日志文件
2、填写记录
建立日志文件,我们可以在程序首次启动时建立一个txt文件,
…
if (!File.Exists(GStr.logfile))//如果文件不存在
{
FileStream fs1 = new FileStream(GStr.logfile, FileMode.Create, FileAccess.Write);//创建写入文件
StreamWriter sw = new StreamWriter(fs1);
sw.WriteLine(yearnow + “年” + monthnow + “月start at " + DateTime.Now.ToString() + “\r\n”);//写入第一条记录
sw.Close();
fs1.Close();
}
…
可以每日定时检查是否存在本月记录文件名,如无则建立当前月命名的txt文件,这样跨月当日就可建立月度日志文件。
生成日志文件后,新建一个写日志的方法:
…
private void write_log(string logfile, string recordtxt)
{
StreamWriter sw = new StreamWriter(logfile, true);
sw.WriteLine(recordtxt);
sw.Close();
}
…
然后就是在需要记录的事件里插入方法了,
例如创建文件成功记录(包含时间):
…
write_log(GStr.logfile, DateTime.Now.ToString() + " 创建” + GStr.day_rec_filename3bak + “成功”);
…
例如退出系统时间记录(包含时间):
…
write_log(GStr.logfile, DateTime.Now.ToString() + " 退出监视系统!");
…
例如断网时间及原因记录(包含时间):
…
write_log(GStr.logfile, DateTime.Now.ToString() + " 连接5#变压器失败." + e.Message);
…
例如数据超差记录(包含时间):
…
write_log(GStr.logfile, DateTime.Now.ToString() + " 8#实时功率:" + num_KW[8].ToString(“F2”) + “KW,负荷率:”+ num_KWprc[8].ToString(“F2”) + “%。”);
…
是不是很简单粗暴?