V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
tctc4869
V2EX  ›  问与答

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

  •  
  •   tctc4869 · 2020-04-02 14:19:26 +08:00 · 2061 次点击
    这是一个创建于 1706 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    12 条回复    2023-03-31 10:15:55 +08:00
    rrfeng
        1
    rrfeng  
       2020-04-02 14:32:43 +08:00
    按你的需求,这几乎是唯一选择。

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

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

    所以有没有其他方式来解决需求?即配置简单 + 查询方便
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1090 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 22:42 · PVG 06:42 · LAX 14:42 · JFK 17:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.