jkey / monolog-mssql

Monolog 的处理程序,将消息发送到 MSSQL

v1.0.5.1 2018-06-03 15:19 UTC

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 文件以获取更多信息。