assisjeferson / cakephp-databaselog
CakePHP 数据库日志插件
Requires
- php: >=5.5
- cakephp/cakephp: ^3.2
Requires (Dev)
- dereuromark/cakephp-tools: dev-master
- fig-r/psr2r-sniffer: dev-master
README
CakePHP 应用程序的数据库日志引擎。
此分支适用于 CakePHP 3.x
功能
- 易于设置,几乎没有依赖。
- 默认使用 SQLite,作为轻量级单应用程序方法。
- 非常适合多应用程序,其中将日志记录到文件并不方便。
- 如果使用数据库,则在数据库不可达的情况下回退到 SQLite。
- 包含简单的管理界面以查看/删除日志。
- 包含基本的监控和警报系统。
- 支持导出到 TXT 文件。
日志轮换
虽然文件处理需要文件日志轮换并将文件分割成(压缩的)文件块,但数据库方法可以更轻松地将日志保存在单个数据库中。在查看或搜索特定内容时这更为方便。
此插件将完全相同的“内容”的日志条目合并为具有增加计数的单行。此外,您还希望添加一个由 cronjob 触发的清理 shell,以保持总大小和行数在某个阈值以下。
演示
克隆并安装sandbox 应用,创建一些错误并浏览管理后端以查看日志概述。
或者直接将其附加到您的应用中。所需时间:5 分钟。
安装
Composer(首选)
composer require dereuromark/cakephp-databaselog
设置
在您的 config/bootstrap.php
中启用插件
Plugin::load('DatabaseLog', ['bootstrap' => true]);
或只需调用
bin/cake plugin load DatabaseLog -b
您可以直接修改 config/app.php
中的现有配置条目
'Log' => [ 'debug' => [ 'className' => 'DatabaseLog.Database' ], 'error' => [ 'className' => 'DatabaseLog.Database' ], ],
这将使用 database_log
连接和 SQLite 文件数据库,默认存储在您的 logs
文件夹中。
使用实际数据库(可选)
在您的 config/app.php
中创建一个配置设置,指定它应将日志记录到哪个数据库连接
'DatabaseLog' => [ 'datasource' => 'my_datasource', // DataSource to use ]
建议不要使用与您的生产服务器相同的数据源(default
),因为当数据库不可达时,将无法将其记录到其中。在这种情况下,它将回退到此服务器实例上的 SQLite 文件记录。
一旦数据源可达,并且一旦第一次写入日志条目,数据库表(默认为 database_logs
)将自动创建。无需手动运行任何迁移或 SQL 脚本。您也可以根据需要手动创建表。
bin/cake Migrations migrate -p DatabaseLog
或者只需将迁移文件复制到您的应用 /config/Migrations
中,根据需要修改,然后作为您应用迁移的一部分运行它。
目前已完全测试 PostgreSQL 和 MySQL,但通过使用 ORM,所有主要数据库都应该得到支持。
使用
在您的应用程序中任何调用 $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 后端,您可以使用它查看日志。
有关更多详细信息,请参阅文档。