In modern desktop environments, the programs log stuff to stdout and stderr, and those get collected into .xsession-errors. This is a very archaic way of doing things. All the output from all the programs gets mixed into a single stream, with no way to find out what stuff comes from where.

Using the system log, syslog, for this is usually not a good idea. There's no point in polluting the system log with stuff that only matters to a specific user.

Perhaps it would be a good idea to write some kind of per-user syslog thing, so that users could easily keep track of what is going on. More importantly, users could attach such log data into bug reports and developers could then actually get some useful information.