行为日志

LinCMS TP5 通过原生框架的Hook实现了行为日志的记录,在需要记录日志的地方监听logger钩子,即可实现日志记录

  1. public function register(Request $request)
  2. {
  3. $params = $request->post();
  4. LinUser::createUser($params);
  5. Hook::listen('logger', '创建了一个用户');
  6. return writeJson(201, '', '用户创建成功');
  7. }

Hook::listen()接收两个参数,第一个是钩子名称,第二个参数内容。这里我们调用了logger这个钩子,钩子的具体行为我们定义在application\api\behavior目录下的Logger.php文件中,文件内实现了一个run方法

  1. public function run($params)
  2. {
  3. // 行为逻辑
  4. if (empty($params)) {
  5. throw new LoggerException([
  6. 'msg' => '日志信息不能为空'
  7. ]);
  8. }
  9. if (is_array($params)) {
  10. list('uid' => $uid, 'nickname' => $nickname, 'msg' => $message) = $params;
  11. } else {
  12. $uid = Token::getCurrentUID();
  13. $nickname = Token::getCurrentName();
  14. $message = $params;
  15. }
  16. $data = [
  17. 'message' => $nickname . $message,
  18. 'user_id' => $uid,
  19. 'user_name' => $nickname,
  20. 'status_code' => Response::getCode(),
  21. 'method' => Request::method(),
  22. 'path' => Request::path(),
  23. 'authority' => ''
  24. ];
  25. LinLog::create($data);
  26. }

run方法主要是实现了字段信息的赋值和拼接,可根据实际情况调整。