Logging access times is already a fairly heavy requirement (by filesystem performance standards), because it requires a write operation for every read operation. Logging other things would be even costlier. The feature is not present in typical filesystems.
LoggedFS is a stackable filesystem that provides a view of a filesystem tree, and can perform fancier logging of all accesses through that view. To configure it, see LoggedFS configuration file syntax.
On Linux, you can use the audit subsystem to log a large number of things, including filesystem accesses. Make sure the
auditd daemon is started, then configure what you want to log with
auditctl. Each logged operation is recorded in
/var/log/audit/audit.log (on typical distributions). To start watching a particular file:
auditctl -a exit,always -w /path/to/file
If you put a watch on a directory, the files in it and its subdirectories recursively are also watched.