title: In Windows, is there an equivalent to syslog or OS X's Console.app for logging specific errors?
body: <p>I'm writing a cross-platform application and am digging into a bit of its error handling. One of my approaches has been to display a message box to the user with a user-friendly error message when something sufficiently bad has gone wrong, while printing more detailed developer-centric information to the system log, both for the serious errors and for less critical issues that don't require bugging the user directly. This way, I can ask the user to check for or send me any output from the app when reporting issues.</p>
  
  <p>To this end, I can use syslog in linux and NSLog / Console.app in OS X. But I don't know of any equivalent feature in Windows that's accessible to the average user. I am aware of DebugView.exe and OutputDebugString(), but I don't consider that a good solution since DebugView doesn't come standard with Windows and is not very accessible -- it's pretty clearly meant to be used by developers.</p>
  
  <p>What's the best approach here? Should I maybe have the app output to a log file somewhere reasonable and ask users to send that? Should I perhaps do the same in Linux and OS X instead of using their system-wide logging facility? Or something else? I'm curious what people do in this sort of situation and what's considered best practices.</p>