hermit / logs
2.4.1
2020-06-22 08:50 UTC
Requires
- php: ^7.1.3
- laravel/framework: 6.*
- laravel/helpers: *
- predis/predis: ^1.1
README
运行命令
composer require hermit/logs
php artisan logs:install
用法
为了写入日志,只需调用 PSR-3 LoggerInterface 中描述的函数,来自 Hermit\Logs\Logger::class
。
示例
\Hermit\Logs\Logger::error('message');
\Hermit\Logs\Logger::error('warning',['author_id'=>5]);
\Hermit\Logs\Logger::log('type','message',['priority'=>5, 'comment'=>'Log comment']);
type
- 字符串;日志类型,有助于分类日志 - 这些类别随后用作分类 message
- 文本;主要描述;可以将对象作为消息参数传递(只要可以使用 json_encode() 函数对其执行操作)
上下文字符数组描述
priority
- 整数 - 默认 1
;日志优先级;
comment
- 文本 - 默认 null
;附加描述;有时在此处放置一些信息可能更有用
author
或 author_id
- App\User 对象或整数,标识日志的作者;
其他条目只有在保存到文件中的日志上才会显示。
配置
您可以在 config\logger.php
文件中配置日志选项,或者通过将内容添加到项目的 .env 文件中来配置。
LOGS_ENABLED=(true|false)
LOG_DESTINATION=(db|file)
LOG_FILE_PATH=logs
LOG_SAVE_METHOD=(direct|redis)
LOGS_REDIS_BATCH=100
LOG_MAX_FILES=14
LOGS_AUTOMATIC_ARCHIVE=(true|false)
LOGS_LIFESPAN=3
LOGS_ARCHIVE_BATCH=1000
路由
Route::prefix('logs')->name('logs.')->group(function () {
Route::get('/', 'hermit\logs\MainLogController@index')->name('index');
Route::post('/priorities', 'hermit\logs\MainLogController@savePriorities')->name('savePriorities');
Route::prefix('archives')->name('archives.')->group(function () {
Route::get('/', 'hermit\logs\MainLogArchiveController@index')->name('index');
Route::get('/details/{logArchive}', 'hermit\logs\MainLogArchiveController@details')->name('details');
});
});
为了在日志路由上添加身份验证,您可以将这些路由添加到项目的 web.php 路由文件中,并自行进行安全设置。
可发布文件
您可以从此包发布 3 个文件,并根据需要编辑它们。
php artisan vendor:publish
hermit-logs-controller
- LogController.php - 扩展 MainLogController.php;您可以像您所希望的那样覆盖 MainLogController 类中定义的所有方法hermit-logs-archives-controller
- LogArchiveController.php - 扩展 MainLogArchiveController.php;您可以像您所希望的那样覆盖 MainLogController 类中定义的所有方法hermit-logs-views
- prioritiesForm.blade.php - 用于设置现有日志类别优先级的简单表单
优先级
当日志被保存时,它的优先级与 MAIN_PRIORITY
的最小值以及定义的 TYPE
优先级进行比较。如果日志优先级低于这两个值中的最大值,则写入日志,否则不执行任何操作。
归档日志
随着时间的推移,日志将在您的数据库中占用更多的空间。
您可以使用以下命令归档日志以节省空间:
php artisan logs:archive
更新
* => 2.0
- 运行命令
php artisan logs:update