本篇博客将介绍如何使用Visual Studio新建一个WinForm工程,由于我还不知道有什么实时地看到程序输出的方法(调试当然是一个好方法),因此参照同事的代码, 加入了一个输出log的功能。
一、新建一个WinForm工程,此处我使用的是VS2019,项目名称我这里就自己起一个叫做Test好了:
如上图可以看到刚创建出来的工程结构如上图,此时一个最原始的WinForm工程就创建好了,直接运行一下会出现一个空白的窗口。
二、Log功能
在项目名称上,右键 --> 添加 --> 新建项,直接选择第一个“类”这一项,然后给新创建的文件起一个名字,我这里是叫做Utils.cs
将新产生的Utils.cs文件中的代码替换为如下:
using System;
using System.IO;
using System.Text;
namespace Test
{
class Utils
{
//写log文件
private static bool first = true;//是否程序启动后首次执行WriteLog这个方法(创建log文件,并且只创建一次)
private static bool delete = false;//是否删除上一次的log(只保留最近的一份log)
private static string fileName = null;//日志文件名
private static object locker = new object(); //解决多线程访问同步问题
public static void WriteLog(string logMessage)
{
lock (locker)
{
DateTime now = DateTime.Now;
string filePath = "Log";//日志文件夹路径
if (delete)
{
if (Directory.Exists(filePath))
{
DirectoryInfo directoryInfo = new DirectoryInfo(filePath);
FileInfo[] infos = directoryInfo.GetFiles();
foreach (FileInfo fileInfo in infos)
{
fileInfo.Delete();
}
}
delete = !delete;
}
if (first)
{
fileName = "Log_" + now.ToString("yyyyMMddHHmmss") + ".txt";
if (!Directory.Exists(filePath)) Directory.CreateDirectory(filePath);
first = !first;
}
if (fileName != null)
{
File.AppendAllText(filePath + "/" + fileName, string.Format("{0} {1}\t{2}\r\n", now, now.Millisecond, logMessage), Encoding.Default);
}
}
}
}
}
注意namespace和class后面的内容要根据自己起的名字改一下。
然后呢,在程序任意位置添加一句打印log的代码,比如我在程序开始处加上一句:
运行程序后,可以在可执行程序所在目录下的log文件夹下看到相应日志: