关于日志不同类型

1.读写密集型

如文章的点击数,要求实时更新和显示,同时需要列表查询,单个查询。

2.写密集型

如网站的访问日志,文章的访问记录,它们仅仅需要使用时才会查询,而且一般以列表的方式读取。

3.读写不密集型

如网站的错误日志,一般一天读取不了几次,错误生成的几率也比较低。

 数据设计

日志系统相对简单,也就一个列表而已,因此几个简单的字段即可。

id int 编号(主键,自增) 用于管理列表
cid int 日志分类(索引) 用于区分不同的日志,如login,loginout,error
rid int 关联编号(索引) 用于关联指定的条目,如用户id,文章id等
ctime datetime 创建时间 用于记录日志发生的时间
intro string 简单说明 用于日志列表的简单一句话说明,如:登录错误
content string 日志内容 用户记录日志的详细信息,255个字节足够了
params json 日志参数 用于记录日志的其他信息,如,用户名,ip等

 

其他

当然了,上面的数据设计只是针对简单错误日志的,我写的一些功能组件要详细的监控组件的运行状况,因此设计了一个简单的日志功能组件。

日志系统是一个功能多样化的系统,它的应用场景多种多样;简单的也许使用mysql就可以了,复杂的就的多种数据存储系统结合使用了。sqlite,redis,mysql,txt等都要考虑进去。

[vr-login]

登录错误次数使用分析

cid - 登录错误
rid - 用户编号
ctime - 错误发生时间
intro - 错误发生页面,来源,...
params - 用户名,密码

可以通过错误日期内容统计来确定指定时间的错误发生次数,是否锁定等。

[/vr-login]