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



我正在使用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实现,但正如其他人建议的那样,我强烈建议使用库而不是自定义解决方案。

有关可用库的更多信息:

  • 基准测试-5-流行的网络日志库
  • dotnetlogging.com

最新更新