c# - 有没有办法防止文本日志文件被锁定?
问题描述
我们正在将报告日志写入数据库,但有几次我们的报告因数据库不可用而失败。我们决定切换到将日志写入文本文件,认为它总是可以工作,但由于 .txt 文件被另一个进程锁定,我已经多次写入失败。
有没有办法防止文本文件被锁定?如果不是,我看不到使用文本文件进行日志记录的好处。
解决方案
使用“NLog”或“SeriLog”将日志写入文件。然后使用“ELK Stack”和“FileBeat”将日志从文件传输到数据库。这是最佳实践之一,因为:
1-您在日志文件中有最后的日志。(所以如果你失去你的数据库连接,你会看到根本原因)
2-您将所有日志都集成在一个数据库中。
3-您可以使用日志框架美化和格式化您的日志文件。
4-您可以滚动日志文件以避免生成大量日志文件。
5- 您可以将横切关注点(例如日志记录、日志清理、多目标日志记录等)与应用程序的核心业务分开。
6-等 <3
推荐阅读
- python - 绘制带有条件 Y 轴的回归图
- reactjs - 反应导航5徽章未呈现
- javascript - 如果我们在 Angular 应用程序中有多个模块,我们是否需要一次又一次地加载权限?
- python - 什么是 Kivy 颜色代码以及它们如何工作?
- git - 执行 git-filter-repo 后创建新存储库的最佳方法
- netbeans - MacOS Big Sur + Netbeans:无法打开/创建项目
- import - 自定义 GA 数据成本 = 缺少 Analytics API 列?
- python - Cloud Function 为 bigquery 客户端抛出错误类型错误,但在 Jupyter Notebook 上工作正常
- javascript - 窗口加载和点击事件
- c# - 例如,C# 为什么我不能将字符串从 networkstream 解析为 int?TCP客户端.服务器