Most of the code that can generate an error do have a direct way to test their error status (e.g. when loading a file you can check the returned bool), thus you should capture the error at a higher level and then directly process the error message, that way you should be able to get the matching error.
If you get multiple errors, you can easily split them per line, but yes it won't be as easy to connect the error to a specific event and filtering might also be a bit more cumbersome, but that then really begs the question whether your way of handling things is really such a good idea.
As stated in all the other similar threads, there most likely won't be a change in error handling till SFML 3, since its a rather fundamental thing and thus will affect the current API, which in turn can't be broken till SFML 3. In the meantime you'll either have to deal with the current system, or go and change SFML's source yourself.