C# 此日志方法在.NET应用程序中如何工作?

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

我正在使用C进行.NET项目,我有以下疑问

我使用此方法将一些错误信息写入文件系统特定目录中的.log文件:

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”)
每天创建一个新的日志文件