gsu-dle / monolog-mysql
Monolog 的处理器,用于将消息发送到 MySQL
v1.0.2
2023-06-30 19:37 UTC
Requires
- php: ^8.1
- ext-pdo: *
- ext-pdo_mysql: *
- monolog/monolog: ^2.0
Requires (Dev)
- doctrine/dbal: ^2.10
- fzaninotto/faker: ^1.9
- phpunit/phpunit: ^8.5
- psy/psysh: ^0.10.4
This package is auto-updated.
Last update: 2024-09-30 01:57:35 UTC
README
Monolog 的 MySQL 处理器,允许将日志消息存储在 MySQL 表中。它可以记录文本消息到特定的表,如果表不存在,则会自动创建。该类还允许动态添加额外属性,这些属性存储在单独的数据库字段中,可用于后续分析和排序。
寻求帮助
由于我不再使用这个项目,也没有时间像它应得的那样维护这个项目,因此我很乐意找到愿意接管这个项目的人。如果您有兴趣接管该项目,请通过 danielherrmann+gitlab@posteo.de 联系我。谢谢!
安装
monolog-mysql 通过 composer 提供。只需将以下行添加到 composer.json 中所需部分,并执行 php composer.phar update
。
"wazaari/monolog-mysql": ">1.0.0"
用法
就像使用其他任何 Monolog 处理器一样使用它,将其推送到 Monolog Logger 实例的堆栈中。然而,处理器需要一些参数
- $pdo 数据库的 PDO 实例。传递数据库连接的 PDO 实例,包括选定的数据库。
- $table 存储日志的表名
- $additionalFields 简单数组,包含应存储在数据库中的额外数据库字段。列会自动创建,字段可以在记录的额外上下文部分中稍后使用。请参阅下面的示例。默认为空数组
- $level 可以是任何标准 Monolog 记录级别。使用 Monolog 静态定义的上下文。默认为 Logger::DEBUG
- $bubble 默认为 true
- $skipDatabaseModifications 定义是否应跳过同步当前数据库状态与代码请求的状态的任何尝试(包括创建表和添加/删除字段)。默认为 false
如果将 $skipDatabaseModifications 设置为 true,请使用以下查询模板创建日志表(如果需要,包含额外字段)
CREATE TABLE `log` ( id BIGINT(20) UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY, channel VARCHAR(255), level INTEGER, message LONGTEXT, time INTEGER UNSIGNED, INDEX(channel) USING HASH, INDEX(level) USING HASH, INDEX(time) USING BTREE )
示例
假设 $pdo 是您的数据库实例,您可以使用类如下所示
//Import class use MySQLHandler\MySQLHandler; //Create MysqlHandler $mySQLHandler = new MySQLHandler($pdo, "log", array('username', 'userid'), \Monolog\Logger::DEBUG); //Create logger $logger = new \Monolog\Logger($context); $logger->pushHandler($mySQLHandler); //Now you can use the logger, and further attach additional information $logger->addWarning("This is a great message, woohoo!", array('username' => 'John Doe', 'userid' => 245));
许可证
此工具是免费软件,并按 MIT 许可证分发。请参阅 LICENSE 文件以获取更多信息。