【问题标题】:Changelog file: YAML vs JSON vs CSV [closed]变更日志文件:YAML vs JSON vs CSV [关闭]
【发布时间】:2011-01-15 19:57:51
【问题描述】:

我正在 CodeIgniter 中创建一个简单的 Changelog 库,它基本上会在每次有人添加、删除、更改或发布博客文章时记录一条消息。我将以 300 条为单位将消息记录在文件中。因此,每条第 301 条消息都会进入一个新文件。起初我想将日志写入简单的 .log 文件,但后来我有了实际设计样式的想法,我不得不分离每条消息的每个“属性”(即:用户、消息、日志的类型, 等等。)。所以 .log 文件是不可能的,因为提取信息会很痛苦。

这样的任务最合适的格式是什么?我已经排除了 MySQL 和 XML,因为它们太重了(特别是考虑到日志文件不会超过(大约)300 行)。我在标题中建议了 YAML、JSON 和 CSV,但还有更好的选择吗?

【问题讨论】:

    标签: php json logging csv yaml


    【解决方案1】:

    我想说这完全取决于您需要/想要对这些文件做什么:

    • CSV 有一个优点:它可以导入 Excel 和此类应用程序 - 在某些情况下可能很有用,例如向上级报告
    • JSON 可以用多种语言读取,包括 Javascript;但不容易被人类阅读;并且更难“手动”修改
    • YAML 非常容易阅读;手动修改不难;但不确定是否有图书馆可以阅读多种语言。


    如果您不属于这些情况:

    • 必须可读
      • 人类
      • 多种编程语言
    • 易于修改
      • 相同的注释

    那我猜这三种格式都可以的^^


    在不了解更多信息的情况下,我会选择 CSV (用于导入 Excel 内容) 或 JSON (出于可移植性原因)

    【讨论】:

    • 感谢您的回答,您的想法非常有趣。根据上下文,我认为JSON是我会选择的格式。
    【解决方案2】:

    我猜 CSV 会更容易,原因有以下几点:

    • 计算列表中已有多少日志(仅计算行数)
    • 无法仅通过附加数据来向 JSON 对象添加内容

    当然,我选择为每个日志项创建一个单独的 JSON 对象并将每个对象放在单独的行上,这不是问题。

    【讨论】:

    • 您不会手动读取/写入 JSON(或 YAML) - 您将使用库。然后这只是data <- read_json(json); length(data); data += more_data ; json_write(data)... 的问题
    猜你喜欢
    • 2019-06-28
    • 1970-01-01
    • 1970-01-01
    • 2016-07-15
    • 1970-01-01
    • 1970-01-01
    • 2019-11-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多