I've done it using squid:
$IPTABLES -t nat -A PREROUTING -i $WIFI -p tcp --dport 80 -s! 192.168.10.10 -j REDIRECT --to-port 3128
All connection not to port 80 are logged via iptables:
$IPTABLES -t nat -A PREROUTING -m state --state NEW,INVALID -d! 192.168.10.0/29 -p tcp --dport ! 80 -j LOG --log-prefix "iptables:"
$WIFI is your wifi network interface