我有一个web应用程序,我的客户请求他想知道。
我想出了两个主意。
我想验证一下我的想法是否正确。
这些是客户的要求。
谁:访问者是谁(例如,remoteAddress-IP)
时间:访问者在web应用程序上做了一些事情
事件:访问者采取了什么具体操作,比如“按下打印按钮”
where:哪个页面,例如访问者访问的URL
我的想法1.
只需发出一个SQL查询,即可记录每个访问网站的用户的活动。如果访问者单击某个页面的链接,web应用程序会将用户活动写入数据库并呈现所请求的页面。
我认为这将对用户体验产生不良影响。页面渲染可能会变慢,因为它必须做额外的工作。这种方法最终会发出过多的SQL查询并最终成为一个坏主意吗?
我的想法2.
为每个用户或每个用户活动启动一个新线程。页面渲染以其自身的速度进行,日志记录将在线程中单独完成。
我认为这可能会创建太多的线程。这是个好主意,还是最终会占用太多资源?
我想知道这些是不是一个好的,现实世界的实践。如果有更好的方法,请分享。:)
发布于 2017-12-02 20:26:52
现代日志记录框架支持异步日志记录的思想。例如,有一个log appender in LogBack,它支持异步日志记录,具有非常好的响应时间。
https://stackoverflow.com/questions/15779523
复制相似问题