Is it possible to log the IP address and various system details (meta data etc.) about a msg.sender who is sending a transaction to your smart contract?
I do not think it is possible. At least, it cannot be found in the documentation: https://solidity.readthedocs.io/en/v0.6.1/miscellaneous.html#index-4
Moreover, it would be a major paradox into a blockchain (at least a public one). One nice element is that it is very hard to know who is who in a network unless you want people to know it. If you have access to IP address in the smart contract, it could be very helpful knowing who is the owner of a eth address.