此包已被废弃,不再维护。未建议替代包。
此包最新版本(v0.1.5)没有提供许可信息。

v0.1.5 2017-05-27 02:30 UTC

This package is not auto-updated.

Last update: 2020-01-19 18:30:07 UTC


README

该记录器提供RFC 5424中定义的八个日志级别:紧急、警报、严重、错误、警告、通知、信息和调试。将消息传递到事件中,它将自动检测请求URL、请求方法、客户端IP、浏览器、用户操作系统等,并将其保存到数据库中。如果事件失败,它将简单地将数据记录到存储日志中。

安装

composer require consigliere/logdb

在 ./config/app.php 中添加到服务提供者数组

'providers' => [
        // ...
        App\Components\LogDB\Providers\LogDBServiceProvider::class,
        // ...
    ],

迁移

php artisan migrate

发布配置

php artisan vendor:publish --tag=config-logdb

基本触发事件

紧急

\Event::fire('event.emergency', [['message' => $message]]);

警报

\Event::fire('event.alert', [['message' => $message]]);

严重

\Event::fire('event.critical', [['message' => $message]]);

错误

\Event::fire('event.error', [['message' => $param['e']->getMessage()]]); // use try - catch to get error message

警告

\Event::fire('event.warning', [['message' => $message]]);

通知

\Event::fire('event.notice', [['message' => $message]]);

信息

\Event::fire('event.info', [['message' => $message]]);

调试

\Event::fire('event.debug', [['message' => $message]]);

使用默认配置示例触发事件

事件应包装在一个配置数组中,使用默认包配置触发事件的示例。

紧急

if ((config('logdb.logActivity')) && (config('logdb.emergency'))) {
    \Event::fire('event.emergency', [['message' => $message]]);
}

警报

if ((config('logdb.logActivity')) && (config('logdb.alert'))) {
    \Event::fire('event.alert', [['message' => $message]]);
}

严重

if ((config('logdb.logActivity')) && (config('logdb.critical'))) {
    \Event::fire('event.critical', [['message' => $message]]);
}

错误

if ((config('logdb.logActivity')) && (config('logdb.error'))) {
    \Event::fire('event.error', [['message' => $param['e']->getMessage()]]);
}

警告

if ((config('logdb.logActivity')) && (config('logdb.warning'))) {
    \Event::fire('event.warning', [['message' => $message]]);
}

通知

if ((config('logdb.logActivity')) && (config('logdb.notice'))) {
    \Event::fire('event.notice', [['message' => $message]]);
}

信息

if ((config('logdb.logActivity')) && (config('logdb.info'))) {
    \Event::fire('event.info', [['message' => $message]]);
}

调试

if ((config('logdb.logActivity')) && (config('logdb.debug'))) {
    if (isset($param['construct'])) {
        $query      = $construct->toSql();
        $queryCount = $construct->count();

        \Event::fire('event.debug', [
            ['message' => 'Success get data from ' . $table . ' table, count records "' . $queryCount . '", with query : "' . $query . '"']
        ]);
    } else {
        \Event::fire('event.debug', [['message' => $message]]);
    }
}

使用包装器触发事件

在模型类中的示例

use App\Components\LogDB\Traits\LogDB;

class BaseModel extends Model
{
    use LogDB;

    protected $fillable = [];
}

事件包装器

# Emergency
$this->fireLog('emergencyOrError', $message, ['somethingElse' => $something]);

# Alert
$this->fireLog('alertOrError', $message, []);

# Critical
$this->fireLog('criticalOrError', $message);

# Error
$this->fireLog('error', $e->getMessage());

# Warning
$this->fireLog('warningOrError', $message);

# Notice
$this->fireLog('noticeOrError', $message);

# Info
$this->fireLog('infoOrError', $message);

# Debug
$this->fireLog('debugOrError', $message);