我正在开发一个基于休息的 API。对于对 API 的每个请求,我都想记录有关该特定请求的大量信息——比如谁提出了请求,他要求了什么资源,跟踪这个客户要求这个资源的次数,他是什么信息感兴趣等等。
如何在不影响每个请求的响应时间的情况下做到这一点?我的想法是将所有这些日志信息写入缓存并将缓存过期时间设置为 5 分钟。然后,这 5 分钟内的所有传入请求都将写入同一个缓存对象。当缓存过期时(当它发生时可能会得到回调)我会将它写入数据库。
你看到这种方法有什么缺点吗?你有更好的建议吗?
PS!使用内置的 IIS 日志记录功能不是一种选择,因为它不够具体。
更新: 我在这里实际上要问的是,在 CacheItemRemoved 回调中进行数据库访问是否存在任何众所周知的问题?这是个坏主意吗?