Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/logging/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Logging MongoDB存储不同的(模式)日志文件_Logging_Mongodb - Fatal编程技术网

Logging MongoDB存储不同的(模式)日志文件

Logging MongoDB存储不同的(模式)日志文件,logging,mongodb,Logging,Mongodb,您认为使用MongoDB Json数据库存储应用程序的日志文件是一个好主意吗?为什么 对我来说,唯一的优势是模式抽象,但我认为这也是一个弱点,我们无法确保日志文件的完整性。显然我有偏见(我在MongoDB上工作),但我认为它对日志非常有效 原因: 插入和更新速度很快。。。你每秒可以做几千次 与普通查询一样,您可以使用运行分析并生成报告 JavaScript。你可以有一个cron作业每晚运行,这很好 将内容映射到日志中 您可以使用capped集合(行为类似于队列的集合)来 仅保留最新的N KBs

您认为使用MongoDB Json数据库存储应用程序的日志文件是一个好主意吗?为什么

对我来说,唯一的优势是模式抽象,但我认为这也是一个弱点,我们无法确保日志文件的完整性。

显然我有偏见(我在MongoDB上工作),但我认为它对日志非常有效

原因:

  • 插入和更新速度很快。。。你每秒可以做几千次
  • 与普通查询一样,您可以使用运行分析并生成报告 JavaScript。你可以有一个cron作业每晚运行,这很好 将内容映射到日志中
  • 您可以使用capped集合(行为类似于队列的集合)来 仅保留最新的N KBs/MBs/GBs日志
我不知道你说的“确保日志文件的完整性”是什么意思。。。您的意思是担心不知道要提取的文档包含哪些字段?如果是这样,我想您会发现在关系数据库中处理空字段并不困难,而且更加灵活


另请参见:。

我正在使用MongoDB来存储来自许多应用程序的日志,到目前为止,它运行得非常好

您可能想看一看我在Mongo SV和上一次MongoDB SF会议上给出的,了解更多关于为什么我认为它适合于日志记录的背景信息,以及关于支持日志记录到MongoDB的Java、Python、Ruby、PHP和C#库的信息

我现在是MongoDB的log4mongo java和Log4J appenders的主要提交人。所以,这可能并不奇怪,我用的就是这个

关于日志完整性,我假设您的意思是,在编写日志之后,它没有被修改。至少在使用log4mongo java时,您可以选择将日志事件存储在需要身份验证的数据库中。这将在一定程度上限制可以添加、删除或更新事件的用户数量

此外,您还可以设置一个严格锁定的复制从机。频繁备份从机至少会限制修改记录事件集的时间