2015-10-19 32 views
1

我有一个要求,我的应用程序能够查明自特定时间以来对象的复杂树是否发生了变化。更改可以是任何类型的东西:更新,删除,甚至视图。应用程序读取自己的日志是不好的做法吗?

我可以添加一些结构来将这些事件写入到我的数据库并带有时间戳,然后能够推断出这些事件的变化,但为什么我应该创建一个与系统日志非常相似的数据库表?

相反,我正在考虑简单地使用程序日志文件。我将阅读与特定模式匹配的最新条目(所以我知道该条目是关于其中一个更改,我在寻找),如果时间戳比我的检查点晚,我知道自检查点以来发生了更改。

这很简单,但我不确定是否有一些我没有想过的东西。有一件事是,我需要确保日志记录级别已设置,以便消息真正出现在日志中,但这不应该成为一个问题。我可以有几个日志文件,我一定要在其中一个文件中包含所有内容,并让其他文件可以自定义。

回答

0

从技术上讲,只要您不试图同时写入(只使用历史日志),它就会工作,但这会破坏日志文件的目的。你可能会期望异常跟踪和其他各种垃圾在那里可能会混淆你的解析。我肯定会建议写一个单独的数据记录,这将由您的应用程序控制数据的清洁度。

例如,如果您正在将数据写入系统日志,并且发生显示“此数据:...有错误”的错误。您的解析可能会读取其副本,或者如果您有其他开发人员倾倒这些信息,则可能无法控制此信息。

+0

确实。将此使用模式的条目存储在其自己的日志文件中而不使用其他类型的条目是最佳的。写作会成为一个问题,这是事实,但这决不会与这个具体案例相关。感谢您的输入 – Eldamir

+0

“永远不会发生”不是正确的态度。考虑发生异常时会发生什么情况,或者其他力量无法控制。 – ergonaut

+0

很好,但在这种情况下,异常的域名相当小。编码难以避免 – Eldamir

相关问题