hoo/laravel-io

io服务扩展

Maintainers

Details

github.com/kunyuH/hoo-io

Source

Issues

Installs: 830

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 1

Forks: 0

Open Issues: 0

Language:JavaScript

v2.1.61 2025-03-03 09:03 UTC

README

简介

各类io扩展

  • 数据库
  • http
  • 日志记录
  • 逻辑单元

安装:

composer require hoo/laravel-io

日志配置

filesystems.php 增加配置:

'debug'  => [
    'driver' => 'daily',
    'path'   => storage_path('logs/io/laravel.log'),
    'level'  => 'debug',
    'days'   => 30, # 保留30天 根据具体情况设置
],

http客户端调用(与GuzzleHttp用法一致;增加了请求日志记录)

$uri = config('http_service.inner_service') . '/api/test';
$res = (new HHttp())->post(
    uri: $uri,
    options: [
        'form_params' => $requestData
    ]
);
$data = $res->getBody()->getContents()
#----------------------------------------------------------------
$uri = config('http_service.inner_service') . '/api/test';
$res = (new HHttp())->post(
    uri: $uri,
    options: [
        'headers' => [
            'Content-Type' => 'application/json'
        ],
        'json' => [
            'card_no' => $account_id,
        ],
    ]
);
$data = $res->getBody()->getContents()

CLOCKWORK监控模块

  • env配置
#--------------------CLOCKWORK--------------------------
# 限制环境 local 开发环境可进 test 测试环境可进 production 生产环境 且请求头中有灰度标识可进 其它环境不可进
# 是否开启CLOCKWORK服务
CLOCKWORK_ENABLE=true
# 收集的数据存储时效 单位:分钟
CLOCKWORK_STORAGE_EXPIRATION=120
# 【控制面板访问】是否开启第二层密码
CLOCKWORK_AUTHENTICATION=false
# 【控制面板访问】第二层密码(默认密码:VerySecretPassword)
CLOCKWORK_AUTHENTICATION_PASSWORD=
#-------------------------------------------------------
  • 配置收集的数据清理脚本
  • \App\Console\Kernel::schedule方法中增加
    # 应用hoo自定义的定时
    (new \hoo\io\common\Console\Kernel())->schedule($schedule);

HM监控模块

  • env配置
#--------------------hoo_hm--------------------------
HOO_ENABLE=true
# 是否需要登录 默认true
IS_LOGIN=true
# 登录账号
HOO_NAME=
# 登录密码
HOO_PASSWORD=
# 登录重试次数 默认5次
HOO_LOGIN_RETRY=
# 服务前缀
SERVICE_NAME=
# 资源前缀 用于日志查看器资源加载 需要带/开头
ASSET_URL=
# 数据连接 不填写则默认mysql
HOO_DATABASE_DEFAULT=
#-------------------------------------------------------

arcanedev/log-viewer日志监控模块

  • 执行初始化命令:php artisan log-viewer:publish
  • 会生成配置文件:config/log-viewer.php
  • 可更改配置文件中 route.attributes.prefix 的值,从而调整路由
  • 注意:日志文件必须是laravel-2024-10-08.log这种格式,否则无法识别
  • env配置
#--------------------hoo_hm api与依赖服务接口请求日志--------------------------
# 记录api请求日志时是否记录日志到数据库 默认记录到数据库(前提条件是数据库中存在日志表)
HM_API_LOG=true
# 记录api请求日志时 记录的用户唯一标识是取请求中的哪个字段 默认是member_id
HM_API_LOG_USER_FILED='member_id'
# 允许不记录日志的路由
HM_API_LOG_NOT_ROUTE=


# 记录程序访问第三方http api 时是否记录日志到数据库 默认记录到数据库(前提条件是数据库中存在日志表)
HM_HTTP_LOG=true
# hhttp日志开关 跑命令时的hhttp日志是否记录 默认false
HM_COMMAND_HTTP_LOG=false


# 记录程序访问数据库 时是否记录日志到数据库 默认记录到数据库(前提条件是数据库中存在日志表)
HM_SQL_LOG=true
# sql日志开关 跑命令时的sql是否记录  默认false
HM_SQL_COMMAND_LOG=false

# 入参出参 字符长度限制 如果超出就不再记录 防止数据库短期容量暴涨 默认5000
HM_API_HTTP_LOG_LENGTH=10000

# 日志清理设置
# api日志清理多久之前的日志 默认 60天前的
HM_API_LOG_CLEAN=60,
# hhttp日志清理多久之前的日志 默认 60天前的
HM_HPPT_LOG_CLEAN=60,
# sql日志清理多久之前的日志 默认 60天前的
HM_SQL_LOG_CLEAN=60,

#--------------------动态从逻辑块中加载配置-------------------
# 是否启用动态从逻辑块中加载配置 默认false
HOO_LOAD_CONFIG_ENABLE=
# 返回配置的逻辑块对象id  默认 c9cf7d34-8294-b348-0796-94718ae48f0d
HOO_LOGICAL_BLOCK_OBJECT_ID=

#********************gateway代理配置*********************************
# 最先执行的中间件 可在中间件中执行代理服务的数据清洗
# 例如:GATE_LAST_MID=App\Http\Middleware\AuthLogin   a33014eb-9ce2-9ef0-081c-c070d0bbed26
GATE_FIRST_MID=
# 中间件 默认 authLogin
GATE_DEFAULT_MID=
# 最后执行的中间件 可在中间件中执行代理服务的数据清洗
# 例如:GATE_LAST_MID=App\Http\Middleware\AuthLogin   a33014eb-9ce2-9ef0-081c-c070d0bbed26
GATE_LAST_MID=
# input 内需忽略传递的参数 默认'member_info,member_id,account_id'
GATE_IGNORE_INPUT=
# header 中允许可代理过去的参数 默认为空  多个以英文逗号分割
GATE_HEADER_ARG=
/**
 * 代理模式 默认 loose
 * strict 严格模式【线上需使用此配置】
 *      代理host 与 代理api必须从值域中选取
 *      值域中可提取的参数 必须属于配置的可使用值域
 * loose 宽松模式
 *      代理host 与 代理api 可从值域中选取 也可直接填写
 *      值域中可提取的参数 可自由使用
 */
GATE_MODE=
# 值域为config时 从那个配置文件中提取   默认:apis
GATE_MODE_DEFAULT_STRICT_CONFIG=
#-------------------------------------------------------

快捷配置 必要配置 其它可依据情况添加

#--------------------CLOCKWORK--------------------------
# 限制环境 local 开发环境可进 test 测试环境可进 production 生产环境 且请求头中有灰度标识可进 其它环境不可进
# 是否开启CLOCKWORK服务
CLOCKWORK_ENABLE=true
# 收集的数据存储时效 单位:分钟
CLOCKWORK_STORAGE_EXPIRATION=120
# 【控制面板访问】是否开启第二层密码
CLOCKWORK_AUTHENTICATION=false
# 【控制面板访问】第二层密码(默认密码:VerySecretPassword)
CLOCKWORK_AUTHENTICATION_PASSWORD=
#-------------------------------------------------------

#--------------------hoo_hm--------------------------
HOO_ENABLE=true
# 登录账号
HOO_NAME=
# 登录密码
HOO_PASSWORD=
# 服务前缀
SERVICE_NAME=
# 资源前缀 用于日志查看器资源加载 需要带/开头
ASSET_URL=
# 数据连接 不填写则默认mysql
HOO_DATABASE_DEFAULT=
#-------------------------------------------------------
  • 注意
  • 如果开启鉴权插件-则需处理网关阻挡问题