更改日志文件:YAML vs JSON vs CSV

时间:2010-02-11 17:59:58

标签: php json logging csv yaml

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

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

2 个答案:

答案 0 :(得分:2)

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

  • CSV有一个优点:它可以导入到Excel和这样的应用程序 - 在某些情况下可能有用,可以向上级报告,例如
  • JSON在许多语言中都是可读的,包括Javascript;但人类不容易阅读;并且更难修改“手工”
  • YAML很容易阅读;不难手工修改;但不确定库是否可以用多种语言阅读它。


如果你不属于这些情况:

  • 必须是可读的
    • 由一个人
    • 用几种编程语言
  • 易于修改
    • 相同的注释

然后我想所有三种格式都可以^^


不知道更多,我会使用CSV (用于导入到Excel的东西)或JSON (出于可移植性原因)

答案 1 :(得分:1)

我猜CSV因为几个原因会更容易:

  • 计算列表中已有多少日志(只计算行数)
  • 只需添加数据
  • 就无法将内容添加到JSON对象中

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