如果我们在可能同时拥有20K用户的Web应用程序中记录每个用户操作,那么最佳方向是什么?我们是否应该构建日志数据的列表缓存,并在一定的时间或阈值后将其持久保存到数据库中?是否有任何好的库或技术可以做到这一点?
答案 0 :(得分:3)
我们是否应该构建日志数据的列表缓存,并在一定的时间或阈值后将其持久保存到数据库
如果您缓存并崩溃,请再见。
是否有任何好的库或技术可以做到这一点?
最好使用灵活的日志记录机制,您可以随意打开和过滤,在禁用时具有超高性能。
我建议使用现有的库。您不希望您的日志记录中的错误可以掩盖生产中的错误。
NLog(和其他此类日志记录库)可以相当容易地用于执行此操作。它旨在满足大量项目的需求,并且具有允许您在禁用它时对性能产生极低影响的技术。它还具有内置的多线程/异步日志记录支持。
话虽这么说,有一个合理质量的很多 .Net日志库。查看此问题以获得一些质量比较意见(代表的图书馆数量多于标题所示):log4net vs. Nlog