consigliere / logdb
此包已被废弃,不再维护。未建议替代包。
此包最新版本(v0.1.5)没有提供许可信息。
v0.1.5
2017-05-27 02:30 UTC
Requires
- jenssegers/agent: ^2.4
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);