jkey / monolog-mssql
Monolog 的处理程序,将消息发送到 MSSQL
v1.0.5.1
2018-06-03 15:19 UTC
Requires
- ext-pdo_sqlsrv: *
- monolog/monolog: >1.4.0
This package is not auto-updated.
Last update: 2024-10-02 03:16:46 UTC
README
Microsoft SQL Server 处理程序,用于 Monolog,允许将日志消息存储在 MSSQL 表中。它可以向特定表记录文本消息。该类还允许使用额外的属性作为数据库字段,这些字段可以用于后续的分析和排序。
这是一个基于 waza-ari/monolog-mysql 的分支,并进行了一些修改。表和列不会自动创建或删除。
安装
monolog-mssql 通过 composer 提供。只需在 composer.json 的所需部分添加以下行,并执行 php composer.phar update
。
"jkey/monolog-mssql": ">1.0.0"
之后,您需要创建数据库表。我们需要以下结构,您可以自由扩展。
CREATE TABLE myLog ( id BIGINT NOT NULL IDENTITY(1,1) PRIMARY KEY, channel NVARCHAR(255) NOT NULL, level INT NOT NULL, message NTEXT NOT NULL, time INT NOT NULL );
用法
就像使用其他 Monolog 处理程序一样使用它,将其推送到 Monolog 日志实例的堆栈中。然而,处理程序需要一些参数
- $pdo 数据库的 PDO 实例。传递您的数据库连接的 PDO 实例化,并选择您的数据库。
- $table 应该存储日志的表名
- $additionalFields 简单数组,包含应存储在数据库中的额外数据库字段。字段可以在记录的额外上下文部分中使用。请参阅以下示例。_默认为空数组()
- $level 可以是 Monolog 标准日志级别的任何一种。使用 Monolog 静态定义的上下文。_默认为 Logger::DEBUG_
- $bubble _默认为 true
示例
假设 $pdo 是您的数据库实例,您可以使用此类如下
<?php require __DIR__ . '/../vendor/autoload.php'; //Import class use Monolog\Logger; use Jkey\Monolog\Handler\MSSQLHandler; $pdo = new PDO('sqlsrv:Server=localhost;Database=log', 'myuser', 'mypass'); //Create logger $log = new Logger('name'); $log->pushHandler(new MSSQLHandler($pdo, "log", array('username', 'userid'), \Monolog\Logger::DEBUG)); //Now you can use the logger, and further attach additional information $log->addWarning("This is a great message, woohoo!", array('username' => 'John Doe', 'userid' => 245));
许可协议
此工具是免费软件,并按照 MIT 许可证分发。请参阅 LICENSE 文件以获取更多信息。