C# 此日志方法在.NET应用程序中如何工作?
我正在使用C进行.NET项目,我有以下疑问 我使用此方法将一些错误信息写入文件系统特定目录中的.log文件:C# 此日志方法在.NET应用程序中如何工作?,c#,.net,C#,.net,我正在使用C进行.NET项目,我有以下疑问 我使用此方法将一些错误信息写入文件系统特定目录中的.log文件: private static void writeErrorLog(string error) { string date = DateTime.Now.ToString("yyyyMMdd_HHmmss"); string currDir = Directory.GetCurrentDirectory(); System.IO.File.AppendAllTex
private static void writeErrorLog(string error)
{
string date = DateTime.Now.ToString("yyyyMMdd_HHmmss");
string currDir = Directory.GetCurrentDirectory();
System.IO.File.AppendAllText(currDir + "\\FILE\\LOG\\Error_" + date + ".txt", error);
}
好的,这个writeErrorLog()方法将被调用到我代码的某个try-catch块中,如下所示:
try
{
currentAttachmentFileData = currentAttachmentFile.OpenBinary();
currentAttachementModel = new AttachmentModel(currentAttachment, currentAttachmentFileData);
attachmentsModelList.Add(currentAttachementModel);
}
catch (Exception ex)
{
//writeLog(2, String.Format("Unable to read the attachment, it may be corrupted {0} - {1}", fileName, ex.Message));
writeErrorLog("Errore inserimento attachment. Numero protocollo: " + recNumber
+ " Data protocollo: " + recDate
+ " Nome attachment: " + currentAttachmentFile
+ " INFO: " + ex.ToString() + " | " + ex.Message + " | " + ex.StackTrace);
}
它发生在代码的不同位置
我的疑问是:该文件是相同的,因此它意味着每次出现错误时都会向该文件添加一行新行
我的回答正确吗?文件名是
string date=DateTime.Now.ToString(“yyyyMMdd_HHmmss”)代码>所以它每秒钟都在变化
您肯定应该在这里添加一些抽象,并将writeErrorLog
隐藏在接口后面。在界面后面,您可以有自己的writeErrorLog
实现,但正如其他人建议的那样,我强烈建议您在自定义解决方案中使用libs
有关可用库的更多信息:
这是什么类型的应用程序?应该处理对日志文件的并发访问为什么要编写自己的日志代码?有一些框架可以为您做到这一点,我强烈建议您在定制解决方案中使用它们。例如,如果两个线程同时调用此日志方法会发生什么情况?不完全正确,日志文件名中的dateformat几乎每次调用都会生成一个新文件。另外,您还应该看看登录.net,有很多解决方案,因此您不必重新设计日期,因为每次写入日志时,日期都会有不同的值。所以它每次都会创建一个新文件<代码>文件。AppendAllText
会将指定的字符串附加到文件中,如果文件不存在,则创建该文件。您需要string date=DateTime.Now.ToString(“yyyyMMdd”)
每天创建一个新的日志文件