dereuromark/cakephp-databaselog

CakePHP 数据库日志插件

安装次数: 142 572

依赖: 2

建议者: 0

安全: 0

星标: 43

关注者: 6

分支: 21

开放问题: 0

类型:cakephp-plugin

4.1.0 2024-02-12 22:48 UTC

README

CI Coverage Status Latest Stable Version Minimum PHP Version License Total Downloads

为 CakePHP 应用程序提供数据库日志引擎。

此分支适用于 CakePHP 5.0+。有关详细信息,请参阅 版本映射

功能

  • 易于设置,几乎没有依赖。
  • 为 Web 和 CLI 日志条目添加了详细的日志信息。
  • 默认使用 SQLite 作为单应用轻量级方法。
  • 非常适合多服务器或无服务器应用程序,在这些应用程序中,将日志记录到文件并不方便。
  • 如果使用数据库,则在数据库不可达的情况下回退到 SQLite。
  • 包括简单的管理界面,用于查看/删除日志。
  • 包括基本的监控和警报系统。
  • 可以导出到 TXT 文件。

日志轮转

虽然文件处理需要文件日志轮转和分割成(压缩)文件块,但数据库方法可以更轻松地将日志保存在单个数据库中。在查看它们或搜索特定内容时,这更方便。

此插件内部将具有相同“内容”的日志条目合并为具有增加计数的单行。此外,您可能还想添加一个由 cronjob 触发的清理 shell,以保持总大小和行数低于某个阈值。

演示

克隆并安装 sandbox 应用,创建一些错误,并浏览管理后端以查看日志概览。

或者直接将其附加到您的应用程序。所需时间:5 分钟。

安装

Composer(首选)

composer require dereuromark/cakephp-databaselog

设置

在您的 Application 类中启用插件

$this->addPlugin('DatabaseLog');

或只需调用

bin/cake plugin load DatabaseLog

您可以直接修改 config/app.php 中现有的配置条目

   'Log' => [
   	'debug' => [
   		'className' => 'DatabaseLog.Database',
   	],
   	'error' => [
   		'className' => 'DatabaseLog.Database',
   	],
   	...
   ],

这将使用 database_log 连接和一个 SQLite 文件数据库,默认存储在您的 logs 文件夹中。

使用实际数据库(可选)

在您的 config/app.php 中创建一个配置设置,指定应将其记录到哪个数据库连接

'DatabaseLog' => [
	'connection' => 'custom',
],

建议不要使用与您的生产服务器(default)相同的连接,因为当数据库不可达时,将其记录到其中也将不可行。在这种情况下,它将回退到此服务器实例上的 SQLite 文件记录,尽管如此。

一旦连接可达,将自动创建数据库表(默认为 database_logs)。无需手动运行任何迁移或 SQL 脚本。

如果您愿意,也可以事先手动创建该表

bin/cake Migrations migrate -p DatabaseLog

如果您使用自定义连接,请确保在此处设置连接以进行迁移

bin/cake Migrations migrate -p DatabaseLog -c custom

到目前为止已完全测试的是 PostgreSQL 和 MySQL,但通过使用 ORM,应支持所有主要数据库。

仅适用于默认连接:您也可以直接将迁移文件(s)复制到您的应用程序 /config/Migrations/,如有必要,进行修改,然后将其作为应用程序迁移的一部分运行。

使用

在您的应用程序中任何调用 $this->log()Log::write() 的地方,都将使用数据库日志引擎。

$this->log('This is a detailed message logged to the database', 'error');
// or
Log::write('error', 'This is a detailed message logged to the database');

还有一个可浏览的 Web 后端,您可以使用它查看日志。

有关更多详细信息,请参阅 文档