我的一个好朋友在一家大型 asp.net 商店工作,该商店有一个带有许多网络服务器(数十个)的网络农场。应用程序将异常和消息记录到每个盒子上的事件日志中(而不是集中位置)。
有谁知道在许多不同的盒子上对事件日志执行统一报告的便捷方法?
或者,哪个更好: - 编写连接到每个盒子上的每个事件日志的工具?- 更改架构以将事件记录到数据库?- 其他一些我没有考虑过的机制?
我会使用Log4Net(或类似的东西)进行日志记录,将文件保存到磁盘,并定期轮换日志文件。(我个人不是 Windows 事件日志的忠实粉丝。)然后在每个盒子上都有一个后台服务,它将日志文件上传到数据库表中 - 跟踪哪个日志条目来自哪个盒子。
这提供了对整个网络场的简单搜索,同时保留了有关哪些日志条目来自何处的信息。
类似的问题:
我的 ASP.Net 开发团队的成员是 BareMetal 名为Bare Tail的免费软件的热心用户,当他们需要快速确定生产问题的根源时,可以读取纯文本日志文件。我相信您可以同时读取多个文件(在不同的选项卡上)。
如果需要,您仍然可以将日志文件数据上传到数据库。但是,写入和读取本地日志文件比写入数据库更快、更简单。而且,一旦 Web 应用程序在生产中稳定下来,最可能的异常来源很可能是数据库连接丢失。一种解决方法是尝试写入数据库,如果失败,则写入日志文件。然后,您可以使用这样的工具来更轻松地读取日志文件数据。