精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (6)
|
|
---|---|
作者 | 正文 |
发表时间:2011-08-01
最后修改:2011-08-02
重新声明:用户操作日志,不是log4j那种程序日志。例如:管理员操作日志。 基于分表和自定义表结构的日志系统。真正足够灵活的,实现成本较低的通用日志架构。 新浪微盘下载PDF文档:http://t.cn/aY8XIT 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-08-02
全部将日志内容保存在数据库吗?
|
|
返回顶楼 | |
发表时间:2011-08-02
现在的人真无聊
搞一个表设置一个appName、appIp 记录一个msg 都能弄出几页pdf |
|
返回顶楼 | |
发表时间:2011-08-02
日志记录到数据库,如果一天能跑出2G的日志,得多少条记录啊
|
|
返回顶楼 | |
发表时间:2011-08-02
想法不错啊,这样做的确省了不少对于关于日志的考量,提高了开发效率,但是性能上其不是有所降低,而且我们一般的设计数据库,都是做逻辑上的删除,实际上这个时候已经有了日志,那么再弄个这个,感觉多余了些,不知楼主是怎么想的
|
|
返回顶楼 | |
发表时间:2011-08-02
我还不如记文件方便呢
|
|
返回顶楼 | |
发表时间:2011-08-02
日志有级别,其实一些error日志记在数据库里面也是可以的.
数据库统计数据比文件有优势 |
|
返回顶楼 | |
发表时间:2011-08-02
好不通用的一个“通用设计”呀!
我们也做一个通用日志,不过,以组件形式发布,叫留痕组件。 主要思想是在数据库驱动上做代理,也就是DriverSpy implements Driver,支持多种数据库。 在使用组件时,把数据库的驱动使用这个DrivereSpy就Okay了。 做日志的方式最好不用做到数据库里,哪样的压力比较大,我们采用做文本滚动日志,把每一次的操作使用JSON的方式记录下来(使用read/write锁,防止异步操作),主要是一些SQL的语法不同,害怕打乱其中的结构。 另外,我们还可以把更新前后的字段做一个比较,原理是在对Execute的时候,再做一次查询。 我们组件最重要的作用是回滚数据,虽然叫回滚,但其实就是先做一个Base line的数据样板,然后把每次操作的日志累加起来,形成某日某时的回滚数据。 同样了,根据JDK和JDBC3/JDBC4的不同,我们发布了针对JDBC3和JDBC4的版本。 呵呵。 |
|
返回顶楼 | |
发表时间:2011-08-02
heweiya 写道 好不通用的一个“通用设计”呀!
我们也做一个通用日志,不过,以组件形式发布,叫留痕组件。 主要思想是在数据库驱动上做代理,也就是DriverSpy implements Driver,支持多种数据库。 在使用组件时,把数据库的驱动使用这个DrivereSpy就Okay了。 做日志的方式最好不用做到数据库里,哪样的压力比较大,我们采用做文本滚动日志,把每一次的操作使用JSON的方式记录下来(使用read/write锁,防止异步操作),主要是一些SQL的语法不同,害怕打乱其中的结构。 另外,我们还可以把更新前后的字段做一个比较,原理是在对Execute的时候,再做一次查询。 我们组件最重要的作用是回滚数据,虽然叫回滚,但其实就是先做一个Base line的数据样板,然后把每次操作的日志累加起来,形成某日某时的回滚数据。 同样了,根据JDK和JDBC3/JDBC4的不同,我们发布了针对JDBC3和JDBC4的版本。 呵呵。 这个是很通用了,不过是否具有可用性呢?每次Update的时候,先做一次Query,有可行性吗?比如update table1 set age = 10, 一次更新成千上万条记录,你能通用的进行“更新前后字段”的比较吗? 斯如是,不如把数据库的Transaction Log分析一下,为你所用了。 |
|
返回顶楼 | |
发表时间:2011-08-02
其实记在文件里面也是一样的 无非就是 查询的时候 要写些pl脚本而已
|
|
返回顶楼 | |