【市场】操作日志 问题反馈

Chance

用于收集市场中操作日志用户所遇到的问题

1470 15 1
15个回答

wangyunhe

截图

  • Chance 2023-07-26

    你是在后台安装的吗,还是把代码直接复制进去的

  • Chance 2023-07-26

    你这个是依赖的包没有安装,通过后台安装会自动安装依赖

yuyu

我用的Db写入的数据,怎么还记录日志,而且路由也不对

  • Chance 2023-07-31

    数据增删改都会记录日志的

  • 程序小杰 2023-08-03

    那个注册 MySQL 数据库连接的解析器,是在哪里操作的??

程序小杰

截图

这一步不知道怎么操作

  • Chance 2023-08-04

    可以放到框架的 bootstrap 里面

程序小杰

截图

我是先在贴里用composer安装的,然后又在后台付款安装的。。装完了,按操作弄完,没日志出来,,还报错了

  • Chance 2023-08-04

    代码和模型是怎么写的,看报错是你的表名设置成 null 了

  • 程序小杰 2023-08-04

    这样吗,我瞅瞅

程序小杰

截图
找到这个bug的情况了。。redis队列时候会报这个错,那个表也有相应的模型的,我要怎么弄呢,版主

  • 程序小杰 2023-08-04

    我的定时任务,每次都会往队列里边插入定时任务状态,队列里边做消费处理时候,就会报这个找不到表的错了,我装你这插件之前是正常的,装了就不正常了

  • Chance 2023-08-04

    E:\web\webnan\process\StateRegister.php(87) 这里可以看一下吗

程序小杰

截图
这里

  • Chance 2023-08-04

    先改成 Db::name()

  • 程序小杰 2023-08-04

    是我的limit,还是replace有问题

  • 程序小杰 2023-08-04

    还真的可以了。。

  • Chance 2023-08-04

    Db::table() 没有设置 name ,我后面改一下这个 bug

  • kspade 2023-08-04

    这玩意高并发下 应该很影响性能吧

  • 程序小杰 2023-08-04

    我去,我好多地方,都写了table

  • Chance 2023-08-04

    一般都是管理后台需要这样的日志吧,后台应该不存在高并发

  • kspade 2023-08-04

    你这是只记录管理后台吗?我还以为是整个SQL的 增删改查 事务 都被监视呢。

  • 程序小杰 2023-08-04

    大佬,我think-orm,Eloquent ORM还有mongodb,混着用,不影响的吧

  • 程序小杰 2023-08-04

    大佬,我付款了支持你,能加个好友不,有问题发提问你,帮你多发现bug,哈哈

  • Chance 2023-08-04

    是记录所有的增删改,业务和后台如果在一起那确实会记录...

  • Chance 2023-08-04

    问题可以发在这个帖子下面,或者提个 issue ,这样大家都能看到

  • kspade 2023-08-04

    如果记录所有的话 会不会如果前端业务逻辑比较频繁 比如一些订单或者IM业务 那些增删改频率相当高。这个应该有所影响吧。是不是应该考虑丢入缓存后 达到数量后(或者定时)批量入mysql 更为妥当

  • Chance 2023-08-04

    下一个版本会增加一个打开关闭记录日志的开关,可以在前台业务的中间件中关闭日志记录

  • Chance 2023-08-04

    入库是在全局的后置中间件入库的 可以自己扩展

程序小杰

截图
还有个问题,像这些模块下的增删查改,会记录到操作日志里边去吗?

  • Chance 2023-08-04

    会的,下一个版本会增加一个打开关闭记录日志的开关

  • 程序小杰 2023-08-04

    现在没加。。我也没发现会记录进去

程序小杰

截图
大佬,又有问题了,我的api,有写入操作,大概因为没登录,你这username字段。。为null了,所以报错了,我需要怎么隔离这部分不属于后台的api请求呢

  • 程序小杰 2023-08-05

    这个你版本还没更新,我有啥办法,可以做个模块功能开关

  • Chance 2023-08-07

    已经修复,更新一下

  • 程序小杰 2023-08-07

    大佬,我应用插件那里。。只看到卸载,没看到更新按钮

程序小杰

截图
大佬,咋更新

  • Chance 2023-08-07

    composer require chance-fyi/operation-log

  • 程序小杰 2023-08-07

    大佬,我api那部分,不想写日志,咋整,怎么设置

  • Chance 2023-08-07

    中间件禁用日志 \Chance\Log\facades\OperationLog::disable()
    记录日志的中间件 plugin\oplog\app\middleware\AfterOperationLog::class 不要放到你的 api 上

  • 程序小杰 2023-08-07

    害,大佬,你在文档那里写吧,写详细些,我配置不出来啊

  • 程序小杰 2023-08-07

    哦哦,我大概知道了,我中间件,没设置对应模块,用了全局

peng

laravel ORM 使用 DB 操作 $ignoreLogFields(日志生成忽略的字段)及$doNotRecordLog(数据表不生成日志) 属性不生效

  • Chance 2023-08-22

    应该是没有找到对应模型,可以设置一下表模型对应关系 \Chance\Log\facades\OperationLog::setTableModelMapping

  • peng 2023-08-22

    佬 没法自动构建目录所有模型与表的映射关系 手动可以

  • Chance 2023-08-22

    市场文档第三步命令可以自动构建

  • peng 2023-08-22

    看到了 但是这个LaravelHookConnection类没看到呢 是需要自己创建吗

  • Chance 2023-08-22

    应用插件代码里面有

  • peng 2023-08-22

    好的 了解了

  • peng 2023-08-25

    佬 修复一下laravel orm Log文件 如果模型casts属性字段定义成Object 写数据 日志就会报错 (Object of class Illuminate\Database\Eloquent\Casts\ArrayObject could not be converted to string) Log getValue方法兼容下object

  • Chance 2023-08-25

    提个 Issue,给个可复现的代码

  • peng 2023-08-25

    已提交

  • peng 2023-08-25

    佬 处理下

  • Chance 2023-08-28

    没有复现

  • peng 2023-08-28

    设置了表模型对应关系后就会复现

  • peng 2023-08-28

    佬处理下 我等着用

  • Chance 2023-08-28

    修复了

  • peng 2023-08-28

    好的 感谢大佬

peng

佬 还有个问题
截图

peng

佬 这块做下兼容。不是所有数组都是这个ArrayObject实例类型
截图

  • Chance 2023-08-29

    不是也不走这块代码啊

  • peng 2023-08-29

    普通数组是跳过了这一步 直接到了 json_decode 就会抛错,我看 tp orm那边是兼容了的

  • Chance 2023-08-29

    Fixed

  • peng 2023-08-29

    1

ekil

安装插件后,webman-admin后台新增管理员账户,登陆后会报错

{
    "code": 500,
    "msg": "json_decode(): Passing null to parameter #1 ($json) of type string is deprecated",
    "type": "failed",
    "traces": "ErrorException: json_decode(): Passing null to parameter #1 ($json) of type string is deprecated in /Users/mac/poj
/webman/vendor/chance-fyi/operation-log/src/orm/illuminate/Log.php:114\nStack trace:

#0 [internal function]: support\\App::{closure}(8192, 'json_decode(): ...', '/Users/mac/poj
/...', 114)

#1 /Users/mac/poj
/webman/vendor/chance-fyi/operation-log/src/orm/illuminate/Log.php(114): json_decode(NULL, true)

#2 /Users/mac/poj
/webman/vendor/chance-fyi/operation-log/src/OperationLog.php(190): Chance\\Log\\orm\\illuminate\\Log->getOldValue(Object(plugin\\admin\\app\\model\\Admin), 'login_at')

#3 /Users/mac/poj
/webman/vendor/chance-fyi/operation-log/src/orm/illuminate/Log.php(147): Chance\\Log\\OperationLog->generateLog(Object(plugin\\admin\\app\\model\\Admin), 'updated')

#4 [internal function]: Chance\\Log\\orm\\illuminate\\Log->updated(Object(plugin\\admin\\app\\model\\Admin), Array, Array)

#5 /Users/mac/poj
/webman/vendor/chance-fyi/operation-log/src/Facade.php(19): call_user_func_array(Array, Array)

#6 /Users/mac/poj
/webman/vendor/chance-fyi/operation-log/src/orm/illuminate/Builder.php(53): Chance\\Log\\Facade::__callStatic('updated', Array)

#7 /Users/mac/poj
/webman/vendor/illuminate/database/Eloquent/Builder.php(921): Chance\\Log\\orm\\illuminate\\Builder->update(Array)

#8 /Users/mac/poj
/webman/vendor/illuminate/database/Eloquent/Model.php(1072): Illuminate\\Database\\Eloquent\\Builder->update(Array)

#9 /Users/mac/poj
/webman/vendor/illuminate/database/Eloquent/Model.php(987): Illuminate\\Database\\Eloquent\\Model->performUpdate(Object(Illuminate\\Database\\Eloquent\\Builder))

#10 /Users/mac/poj
/webman/plugin/admin/app/controller/AccountController.php(83): Illuminate\\Database\\Eloquent\\Model->save()

#11 /Users/mac/poj
/webman/vendor/workerman/webman-framework/src/App.php(319): plugin\\admin\\app\\controller\\AccountController->login(Object(support\\Request))

#12 /Users/mac/poj
/webman/vendor/workerman/webman-framework/src/App.php(349): Webman\\App::Webman\\{closure}(Object(support\\Request))

#13 /Users/mac/poj
/webman/plugin/oplog/app/middleware/AfterOperationLog.php(17): Webman\\App::Webman\\{closure}(Object(support\\Request))

#14 /Users/mac/poj
/webman/vendor/workerman/webman-framework/src/App.php(341): plugin\\oplog\\app\\middleware\\AfterOperationLog->process(Object(support\\Request), Object(Closure))

#15 /Users/mac/poj
/webman/plugin/admin/app/middleware/AccessControl.php(47): Webman\\App::Webman\\{closure}(Object(support\\Request))

#16 /Users/mac/poj
/webman/vendor/workerman/webman-framework/src/App.php(341): plugin\\admin\\app\\middleware\\AccessControl->process(Object(support\\Request), Object(Closure))

#17 /Users/mac/poj
/webman/vendor/workerman/webman-framework/src/App.php(141): Webman\\App::Webman\\{closure}(Object(support\\Request))

#18 /Users/mac/poj
/webman/vendor/workerman/workerman/Connection/TcpConnection.php(646): Webman\\App->onMessage(Object(Workerman\\Connection\\TcpConnection), Object(support\\Request))

#19 /Users/mac/poj
/webman/vendor/workerman/workerman/Events/Select.php(311): Workerman\\Connection\\TcpConnection->baseRead(Resource id #442)

#20 /Users/mac/poj
/webman/vendor/workerman/workerman/Worker.php(1635): Workerman\\Events\\Select->loop()

#21 /Users/mac/poj
/webman/vendor/workerman/workerman/Worker.php(1426): Workerman\\Worker::forkOneWorkerForLinux(Object(Workerman\\Worker))

#22 /Users/mac/poj
/webman/vendor/workerman/workerman/Worker.php(1400): Workerman\\Worker::forkWorkersForLinux()

#23 /Users/mac/poj
/webman/vendor/workerman/workerman/Worker.php(560): Workerman\\Worker::forkWorkers()

#24 /Users/mac/poj
/webman/vendor/workerman/webman-framework/src/support/App.php(131): Workerman\\Worker::runAll()

#25 /Users/mac/poj
/webman/start.php(4): support\\App::run()

#26 {main}"
}
  • ekil 2023-08-31

    webmin-admin 后台新增一个用户,点禁用那个开关就可以复现

  • Chance 2023-08-31

    Fixed

  • ekil 2023-08-31

    好了,谢谢大佬

小吴大大

安装报错 proc_open(): supplied resource is not a valid stream resource

  • Chance 2023-09-28

    代码应该下载下来了,可以看一下 plugin\oplog\api\Install::install 逻辑,自己手动设置一下

  • 小吴大大 2023-09-28

    搞好了,手动 composer ,手动 copy文件,手动执行sql,无奈

ekil
"Error: Object of class Illuminate\\Database\\Query\\Expression could not be converted to string in /vendor/chance-fyi/operation-log/src/orm/illuminate/Log.php:90

用了 illuminate 的 decrement 就会这个错误报错

Db::connection('mysql')->beginTransaction();
try {
  $user = User::where('id', $id)->lockForUpdate()->first();
  $user->decrement('account', $amount);
  Db::connection('mysql')->commit();
} catch (\Exception $e) {
  Db::connection('mysql')->rollback();
}
🔝