How to log all users' git command(pull/clone/push…) in Gitlab server?

I want to statistic all command sent to gitlab server to get these info, such as time、duration、ip、 command(pull/clone/push)、repository。 I have already tried two methods, but not succeed:

  1. access log

gitlab’s own log system has multiple log files, but none can log all git command.
For example, production.log can log all git command over http but not ssh.

  1. hook

git push can call hook function, but pull/clone can’t

What else can I do?