日志用json保存,每次访问页面就会在当前年 月 目录下生成一个天数.log文件。json按照追加方式添加进去。
写入格式是序列化LogModel对象,一行一个对象,追加时以行追加。
读取时读取当天全部行,通过string.join用,连接,在开头和结尾添加[]组成json数组,然后序列化为list对象。
问题:
1 当多个浏览器同时访问时候肯定会在同一时间进行追加操作,这样会不会冲突。
2 如果冲突我现在采用的是lock锁写入操作,有没有更好的办法。
请各路大神为小弟解雇!不胜感激!
量小的话,lock就行。没必要搞那么到事情。
确认io性能不会是瓶颈,从你的描述来说也不会是。日志加[]序列化,量一定不大。不要想多了。
量比较大的话,中间加个queue,批量写
可以通过队列来防止并发,比如微软自带的Queen
用队列实现,这个比较保险。写日志很容易出现并发现象
按照你的读取方式,估计你每天的量不会很大(每天文件10M一下,写入的时候加lock是最简单的办法。