Not to start a religeous war, but for what it's worth I've never been a fan of a protected logger used by subclasses.  I realize it 
a) makes it easier to see what actions are occurring on behalf of a subclass by parent classes when there is a lot of activity in the logs (though you can figure that out by looking at the thread ID that should be logged as well and makes it easy to see all of what is going on), and 
b) allows you to pick the package or classname of the class you are interested in in the filters and get much of the targeted debug logging

However if you see a log message and are trying to find the source you have to walk up the hierarchy doing searches in the source code which is annoying.  Also you can't depend upon library classes your classes extend from behaving the same way (e.g. expose protected loggers) so you have two different behaviors occurring in the logging.  IMHO I'd rather just have each class have its own logger.  However I recognize I may be in the minority on this opinion.  (no need to have many comments to this comment. :-) )