我想为我的应用程序制作一个详细的记录器,因为它可能变得非常复杂并且必须保存很多不同的东西我想知道哪里最好将它保存在数据库中(如果数据库是哪种数据库是更好的这种操作)或文件(如果文件是什么样的格式:文本,csv,json,xml)。我首先想到的当然是文件,因为在数据库中我看到很多问题,但我也想成为能够显示这些日志,这对于数据库来说更容易。
答案 0 :(得分:0)
我正在构建HIPPA合规性日志,这是我的粗略实现(尚未完成)。
文件VS. DB 强>
我使用数据库表来存储最近3个月的数据。每天晚上,一个cron将运行并将旧数据(过去3个月的数据)推送到压缩文件中。我还没写过这个剧本,但这应该不难。这样可以搜索,过滤等过去3个月。但数据库不会被日志条目所淹没。
数据库偏好
我正在使用MSSQL,因为我没有选择。我通常更喜欢MySQL,因为它有更好的寻呼机优化。如果您进行的搜索和过滤数量非常少,或者如果您担心性能问题,那么您可能需要考虑一个apache solr中间人。我不是数据库专家,所以我不能给你更多的东西。
表格结构
我的表是5列。日期,操作(创建,更新,删除),对象(患者,约会,医生),ObjectID和Diff(前后值的序列化数组,为了节省空间,更改的值不是空的或未更改的值)。
<强>摘要强>
最重要的考虑因素是:您是否需要人们能够定期访问和过滤/搜索数据?如果是,请考虑最近历史数据库或最重要的数据。
如果没有文件可能是更好的选择。
我的混合解决方案也值得考虑。我将把文件推送到amz文件服务器,这样就不会占用我的Web服务器空间。
答案 1 :(得分:0)
您可以创建细节&amp;复杂的记录器使用一些现有的库,如log4php,因为它作为性能的一部分进行了全面测试,与你为自己设计自定义相比,它还可以节省开发时间,我亲自使用php和dotnet中的少量库来处理复杂的记录器需要在一些金融和医疗领域项目中
在这里我建议如果你需要从php那么使用这个
答案 2 :(得分:0)
我认为正确的答案实际上是:两者都没有。 文件或数据库都没有为您提供正确的搜索,过滤,并且在查看日志时您需要这样做。我整天处理日志(请参阅http://sematext.com/logsene了解原因),我将按照以下方式处理: