implement request logging with time taken