Основное отличие от логирования суперкласса с именем подкласса, конечно, состоит в том, что у вас будет один Logger
объект на члена вашего класса. В зависимости от того, сколько классов используют журналирование, это может быть огромное количество регистраторов, поэтому может возникнуть проблема с переполнением памяти.
Плюс с абстрактной точки зрения, регистратор действительно принадлежит классу и может использоваться всеми экземплярами, а не каждому экземпляру, нуждающемуся в собственной частной копии, поэтому имеет смысл объявить его статическим. Переверните ваш вопрос, какие преимущества он имеет, чтобы сделать его нестатичным? (Возможность передать getClass()
в вызов getLogger()
вместо передачи константы класса - это единственное, о чем я могу думать, и это такая крошечная вещь).