logging content negotiation

#1564
Strongly recommend always using static `string.Equals()` because it does all the required null checks. @davidfowl still owes me $10 for getting that wrong once and causing a bug.