If you need to log this, then I would say what you really need (although you may come to regret it...) is a [possibly transparent] proxy or a firewall that does Deep Packet Inspection (DPI) [which goes by various other names too], such as the FortiNet devices.
Neither of these will tell you about what goes happens inside a https connection (though it will tell you which IP/DNS they connected to), although if you cause all the devices to trust a local CA certificate that you create (and use to dynamically sign everything; your users will hate you for that, by the way), then you could look in all/most of the traffic.
If you need to know the 'user' (to determine who did what & when), then you either need an authenticating proxy, which can't be bypassed, or some other network authentication technology such as 802.1x port authentication, and some system that records temporal mapping of timeframe:user:ip:hostname:mac, which can then be retrieved later for reporting. .... that's a pretty advanced network though, and very likely outside if your ability to support.