想用 sqlite 做 web 项目的系统日志文件体系,这个合适吗?

2020-04-02 14:19:26 +08:00
 tctc4869

大多数日志框架,都是把日志存储在可以直接用 txt 打开的文件里,但是我想要以表格化或关系化的方式查找排查问题,但自定义日志查看软件的又费时,扩展又很麻烦,因此想到用关系型数据库来存日志,用 select 语句来查找问题,但又不想存储在服务型的关系型数据库里,想要嵌入式一点,于是想到了 sqlite 。现在 sqlite 设置一下也支持多线程数据写入了。

用 sqlite 的 db 文件来做日志的文件体系,会有哪些问题?或者有更好的表格关系化的日志体系排查问题的方式么?

1888 次点击
所在节点    问与答
12 条回复
rrfeng
2020-04-02 14:32:43 +08:00
按你的需求,这几乎是唯一选择。

问题是你的需求可能是错的……
tctc4869
2020-04-02 14:58:11 +08:00
@rrfeng 你是不是觉得,用 sqlite 做系统日志文件是没有必要的。直接用 txt 做日志文件,用文本编辑器打开,用“查找”功能去看日志是最好的?
murmur
2020-04-02 15:00:09 +08:00
不是有 elk 这种东西么,少的日志我们直接写 txt 就可以啊,反正按日拆分也不会太多
qinxg
2020-04-02 15:05:18 +08:00
我之前做系统也有这样的问题..看看有啥方案没有...
liprais
2020-04-02 15:24:13 +08:00
@tctc4869 你这个态度真是......
反正你高兴就好
为啥不用 elk
rrfeng
2020-04-02 16:30:11 +08:00
楼上的别太偏激,elk 太重了。

是的,对于日志来说文本文件就是最好的。除非你要对日志里的特定字段进行复杂的统计、计算,否则毫无理由放到 DB 里。
lepig
2020-04-02 16:40:57 +08:00
@liprais 从字面上来看,楼主不太善于和人沟通
sujin190
2020-04-02 16:43:50 +08:00
数据量小 shell 各种指令组合下就能查询过滤够用了吧,而且读写都是顺序效率也不低,方便又简单,哪都能用,根本不用想那么多吧,要是你一天写十几 G,几十 G,甚至几百 G 日志,纯文本顺序写入都够作死了,sqllite 真的是作死中的作死啊,如果这时候你还能用 sql 查出来那真的是见了个鬼了
sujin190
2020-04-02 16:48:26 +08:00
感觉每天写超过 1G 最好就用 elk,不要太方便,少的话还是纯文本 shell 过滤更方便吧,纯文本的记录也更容易应对未知错误导致写出奇奇怪怪的日志
yokyj
2020-04-02 17:05:19 +08:00
标题改成“想用 sqlite 做 web 项目的系统日志文件体系,不服来辩”会好一点
tctc4869
2020-04-02 17:09:18 +08:00
@rrfeng 谢谢你的建议,elk,这个东西,我查了一下,它好像是个服务组合,可以把日志管理拆分独立的一个服务。集成了查询,存储,可视化这三点。关于这三点的组合,有同类型的么?
xmsz
2023-03-31 10:15:55 +08:00
我也遇到这个需求
第一种,就是集成 log+txt 的方案,好处就是通用简单,但是查询起来少一点方便
第二种,elk 之类的,好处就是适合超大数据,场景很少
第三种,就是用本地数据库比如 sqlite ,好处就是使用最简单,查询也最方便。但是感觉有点不是正道用途

所以有没有其他方式来解决需求?即配置简单 + 查询方便

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/658646

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX