# laravel_log_support **Repository Path**: cqtlyqs/laravel_log_support ## Basic Information - **Project Name**: laravel_log_support - **Description**: laravel日志组件,使用中间件+队列+注释方式,记录日志 - **Primary Language**: PHP - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2022-02-25 - **Last Updated**: 2024-01-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # laravel_log_support #### 介绍 laravel日志组件,使用中间件+队列+注释方式,记录日志 #### 使用说明 1. 引入 ``` composer require ktnw/log_support ``` 2. 发布 ``` php artisan vendor:publish --provider="Ktnw\LogSupport\Providers\LogSupportServiceProvider" ``` 3. 修改namespace ``` php artisan support:log ``` 4. 配置env文件 ``` QUEUE_SAVE_OP_LOG=save_logs USER_OP_LOG_TABLE_NAME=user_op_log ``` 其中,USER_OP_LOG_TABLE_NAME为用户操作日志表的表名;QUEUE_SAVE_OP_LOG为队列名称 5. 创建用户操作日志表
先根据实际业务需求扩展用户操作日志记录表后,再进行表迁移。 ``` php artisan migrate --path database/migrations/2022_02_25_140244_create_user_op_log_table.php ``` 6. 配置queue.php ``` 主要配置queue和retry_after 若使用redis集群,注意 queue的 配置需加{} 示例如下: 'redis' => [ 'driver' => 'redis', 'connection' => env('QUEUE_REDIS_CONNECTION', 'default'), 'queue' => env('REDIS_QUEUE', 'default'), // 定义任务在执行以后多少秒后释放回队列。如果retry_after 设定的值为 90, 任务在运行 90 秒后还未完成,那么将被释放回队列而不是删除掉。毫无疑问,你需要把 retry_after 的值设定为任务执行时间的最大可能值。 'retry_after' => 3600, // 单位:秒 'block_for' => null, ], ``` 7. 创建failed_jobs_table表 ``` php artisan queue:failed-table ``` ``` php artisan migrate --path database/migrations/2022_02_25_162627_create_failed_jobs_table.php ``` 注意:表名可能会变,表迁移时,请根据实际情况进行. 8. App\Http\Kernel.php配置
$routeMiddleware中增加如下配置 ``` 'save_log' => \App\Http\Middleware\SaveLogMiddleware::class, ``` 配置后,需要记录日志的路由中,使用中间件 save_log。 此种方式,可灵活配置,对于高并发的路由,可以不使用。 9. 根据实际业务修改SaveLogMiddleware
主要设置: RESPONSE_SUCCESS_CODE. 10. 运行队列 ```angular2html php artisan queue:work --queue=save_logs --tries=1 ``` 11. 在需要记录用户操作日志的controller方法上添加注释:@saveLog,可根据实际业务需求,扩展:SaveLogMiddleware. ``` /** *@saveLog opType:user-save, opDesc:保存用户 */ public function save(){ // TODO } 注释参数说明: opType:用户操作类型 opDesc:用户操作描述 注意::(英文冒号)和 ,(英文逗号)为分割符号,opType和opDesc字符串中不要包含这个两个字符。 ```