dereuromark/cakephp-databaselog

CakePHP 数据库日志插件

安装次数: 142,536

依赖: 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 后端,您可以使用它查看日志。

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