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.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
.
有关可用库的更多信息:
推荐阅读
- java - 保存 web.xml 中的更改时,Eclipse 从 2019 到 2020-3 挂起
- java - 自定义 ListView 适配器的意外行为
- c - 在 C 中使用递归打印字符串的所有组合
- c# - C# HttpClient 返回状态 WaitingForActivation
- agora.io - 如何同时使用网络语音 api 和 agora.io?
- c - CS50 pset4 模糊功能 - 无法找出 3x3 和 4x4 图像上的测试失败的原因
- machine-learning - Train Accuracy 增加,Train loss 稳定,Validation loss 增加,Validation Accuracy 低并且增加
- ios - iOS webview 仅在 iOS13 上崩溃
- vb.net - 使用 VB.NET 和 Microsoft Graph API 创建 Microsoft Teams 会议
- python - 如何在 Python 中将文本标签添加到 Plotly 散点图中?