Want to know my nomination for the worst-documented part of Java? It's the so-called JDK 1.4 logger. It's clear that it was a last minute hack that Sun really couldn't be bothered to document properly. And I speak as someone who's intimately familiar with it, having extended the Handler classes, etc. But it's next to impossible for somebody just starting out to figure out how to configure it!
And my nomination for the next worst? Log4J. That's because the author wants to make money from selling the book (not unreasonable). And while I'm about it let's mention good old Apache Jakarta Commons Logging (JCL). Why do otherwise (presumably) intelligent people just go completely ga-ga when it comes to explaining how these things work?
All-in-all, I've probably misspent more hours figuring out why logging wasn't doing what I expected than Hibernate, even! But, using Hibernate is extremely complex (because it models something very complex) and getting it wrong is just part of being a developer. But logging? It should (and could) be the simplest thing in the world!
At this point, it would be great if I could link to a really good blog page that explains how to use JCL with JDK14 logging. But there isn't one. Maybe I'll write one myself soon. For now, I just want to rant!