网上的好多都是用第三方的日志库,也有使用自带的Trace,但要修改配置文件,略显复杂,而且不灵活,无法按日期生成日志文件
所以自己写了一个函数,不使用任何第三方库
将日志文件放在当前的logs子目录下面,且文件按照日期命令
同时可以记录调用时的文件名和行号,还有调用时的时刻 精确到毫秒
public static void mylog(string txt, [CallerFilePath] string filePath = "", [CallerLineNumber] int lineNumber = 0)//CallerMemberName
{
if (!Directory.Exists("logs")) Directory.CreateDirectory("logs");
DateTime dt = DateTime.Now;
TextWriterTraceListener lg = new TextWriterTraceListener("logs/"+ dt.ToString("yyyy-MM-dd") + ".log");
lg.WriteLine(dt.ToString("HH:mm:ss.fff ") + filePath + ":" + lineNumber.ToString() + " " + txt);
lg.Flush();
lg.Dispose();
}
调用例子:
private void button2_Click(object sender, EventArgs e)
{
mylog("abcd");
}
打开日志文件,实际记录的内容:
09:01:23.502 D:\VSProjects\test\Form1.cs:41 abcd