exs/silex-error-provider

Silex2 的异常/错误记录包

v1.0.1 2015-06-03 19:14 UTC

This package is auto-updated.

Last update: 2024-08-29 03:41:59 UTC


README

捕获所有服务器端错误,然后在错误日志文件中记录它们。然后控制台命令将文件内容移动到数据库。

在 Silex 项目中安装 ErrorProvider

安装过程实际上非常简单。使用 Composer 设置一个 Silex 项目。

一旦新项目设置完成,打开 composer.json 文件并添加 exs/silex-error-provider 作为依赖项

//composer.json
//...
"require": {
        //other bundles
        "exs/silex-error-provider": "v1.0.*"

或者,您也可以通过命令行添加它

$ composer.phar require exs/silex-error-provider : v1.0.*

保存文件,并通过命令行运行 composer update 更新项目

php composer.phar update

Composer 将现在更新所有依赖项,您应该在我们的列表中看到我们的包

  - Installing exs/silex-error-provider (dev-master 463eb20)
    Cloning 463eb2081e7205e7556f6f65224c6ba9631e070a

更新 app.php 以包含我们的提供者

//app.php
//...
$app->register(new \EXS\ErrorProvider\Providers\Services\ErrorServiceProvider());

使用日志位置更新您的 config.php

//...
// Log locations and names
// Max number of error messages to read before logging to DB.
$app['logs.directory'] = __DIR__ . '/../var/logs';
$app['logs.file.exceptions'] = $app['logs.directory'] . '/exceptions.log';
$app['logs.reader.threshold'] = 2000;
//...

现在应用程序正在 /exceptions.log 中记录异常

控制台命令使用

通过运行控制台 doctrine 命令更新您的数据库模式或

CREATE TABLE exception4xx (id INT AUTO_INCREMENT NOT NULL, statusCode INT NOT NULL, message LONGTEXT DEFAULT NULL, requestUrl VARCHAR(255) DEFAULT NULL, referrer VARCHAR(255) DEFAULT NULL, userAgent VARCHAR(255) DEFAULT NULL, remoteIp VARCHAR(45) DEFAULT NULL, method VARCHAR(10) DEFAULT NULL, queryString LONGTEXT DEFAULT NULL, hostname VARCHAR(255) DEFAULT NULL, request LONGTEXT DEFAULT NULL, logged DATETIME NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;
CREATE TABLE exception5xx (id INT AUTO_INCREMENT NOT NULL, statusCode INT DEFAULT NULL, file VARCHAR(255) DEFAULT NULL, line INT DEFAULT NULL, message LONGTEXT DEFAULT NULL, trace LONGTEXT DEFAULT NULL, requestUrl VARCHAR(255) DEFAULT NULL, referrer VARCHAR(255) DEFAULT NULL, userAgent VARCHAR(255) DEFAULT NULL, remoteIp VARCHAR(45) DEFAULT NULL, method VARCHAR(10) DEFAULT NULL, queryString LONGTEXT DEFAULT NULL, hostname VARCHAR(255) DEFAULT NULL, request LONGTEXT DEFAULT NULL, logged DATETIME NOT NULL, PRIMARY KEY(id)) DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci ENGINE = InnoDB;

将命令添加到您的 console.php 文件中

use Symfony\Component\Console\Application;
use EXS\ErrorProvider\Commands\LogloaderCommand;

$console = new Application('Log loader command', 'Description here');
$console->addCommands(array(
    new LogloaderCommand('Exception reader', $app['exs.serv.exception.reader'])
));

return $console;

转到您的 shell 窗口,然后执行

php bin/console exs:log:exceptions

现在文件将被保存在您的数据库中。

如果您希望定期将异常保存到数据库中,请将控制台命令添加到您的 crontab。

贡献

任何人都可以贡献。

如果您有任何问题或建议,请告诉我们