I recently stumbled upon this presentation of N. Zakas, and implemented the technique explained there. It is quite simple but IMHO very effective
http://www.slideshare.net/nzakas/enterprise-javascript-error-handling-presentation
the idea is to simply issue a call to a server side component (I used a .net handler but it could be a php file as well) which takes some param, log the param values and returns a 1x1 image stream back. What I like the most is that there's no need to involve ajax calls at all.
The code from the presentation is as follows:
function log(severity, message) {
var img = new Image();
img.src = "log.php?sev=" + encodeURIComponent(severity) +
"&msg=" + encodeURIComponent(message);
}
log(1, "something bad happened");