Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.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
Php 数据库或文件中的应用程序日志_Php_Database_File_Logging - Fatal编程技术网

Php 数据库或文件中的应用程序日志

Php 数据库或文件中的应用程序日志,php,database,file,logging,Php,Database,File,Logging,我想为我的应用程序制作一个详细的日志,因为它可能会变得非常复杂,并且必须保存很多不同的东西,我想知道在数据库中保存它的最佳位置是什么(如果数据库是哪种类型的数据库更适合这种操作)还是在文件中(如果文件是哪种格式:文本、csv、json、xml)。我的第一个想法当然是文件,因为在数据库中我看到了很多问题,但我也希望能够显示这些日志,因为使用数据库更容易做到这一点。我正在为HIPPA合规性创建日志,这是我的粗略实现(尚未完成) 文件与数据库的对比 我使用一个数据库表来存储过去3个月的数据。每天晚上,

我想为我的应用程序制作一个详细的日志,因为它可能会变得非常复杂,并且必须保存很多不同的东西,我想知道在数据库中保存它的最佳位置是什么(如果数据库是哪种类型的数据库更适合这种操作)还是在文件中(如果文件是哪种格式:文本、csv、json、xml)。我的第一个想法当然是文件,因为在数据库中我看到了很多问题,但我也希望能够显示这些日志,因为使用数据库更容易做到这一点。

我正在为HIPPA合规性创建日志,这是我的粗略实现(尚未完成)

文件与数据库的对比
我使用一个数据库表来存储过去3个月的数据。每天晚上,cron都会运行并将较旧的数据(过去3个月的数据)推送到压缩文件中。我还没有写这个剧本,但应该不难。这样可以搜索、过滤过去3个月的数据,但数据库不会被日志条目淹没

数据库首选项
我使用MSSQL是因为我别无选择。我通常更喜欢MySQL,因为它有更好的寻呼机优化。如果你做的搜索量和过滤量太少,或者你担心性能,你可能会考虑Apache Salr中间人。我不是数据库专家,所以我不能给你更多

表格结构
我的表有5列。日期、操作(创建、更新、删除)、对象(患者、约会、医生)、ObjectID和Diff(前后值的序列化数组,仅更改了值,为了节省空间,没有空值或未更改的值)

摘要
要考虑的最重要的一点是:你需要人们能够定期访问和过滤/搜索数据吗?如果是,考虑最近的历史数据库或最重要的数据。 如果没有,文件可能是更好的选择


我的混合解决方案也值得考虑。我将把文件推送到amz文件服务器上,这样它就不会占用我的web服务器空间。

您可以使用一些现有的库(如Log4HP)创建详细和复杂的日志记录器,因为它作为性能的一部分经过了全面测试,与您自己设计的自定义日志相比,它还可以节省开发时间,我个人在一些金融和医学领域的项目中使用了一些php和dotnet库来满足我们复杂的记录器需求

在这里,我建议如果您需要从php执行,那么使用


我认为正确的答案实际上是:两者都不是。 无论是文件还是数据库都不能为您提供适当的搜索、过滤,在查看日志时您需要这些。我整天都在处理日志(看看原因),我会如下处理:

  • 记录到文件
  • 使用轻量级日志托运人(例如Logagent或Filebeat)
  • 将日志索引到您自己的Elasticsearch集群(如果您不介意管理和学习)或某个云日志管理服务(如果您不想处理Elasticsearch管理、扩展等问题——Logsene、Loggly、Logentries…)