Dall'efficace java, 2a edizione,
L'unica eccezione alla regola precedente riguarda i "campi costanti", i cui nomi devono essere costituiti da una o più parole maiuscole separate dal carattere di sottolineatura, ad esempio VALUES o NEGATIVE_INFINITY. Un campo costante è un campo finale statico il cui valore è immutabile . Se un campo finale statico ha un tipo primitivo o un tipo di riferimento immutabile (elemento 15), allora è un campo costante. Ad esempio, le costanti enum sono campi costanti. Se un campo finale statico ha un tipo di riferimento modificabile, può comunque essere un campo costante se l'oggetto a cui si fa riferimento è immutabile.
In sintesi, costante == finale statico, più se si tratta di un riferimento (rispetto a un tipo semplice), immutabilità.
Guardando il logger slf4j,
http://www.slf4j.org/api/org/slf4j/Logger.html
È immutabile D'altra parte, il logger JUL è modificabile. Anche il logger log4j è modificabile. Quindi, per essere corretti, se stai usando log4j o JUL, dovrebbe essere "logger", e se stai usando slf4j, dovrebbe essere LOGGER.
Si noti che la pagina javadocs slf4j collegata sopra ha un esempio in cui usano "logger", non "LOGGER".
Queste sono ovviamente solo convenzioni e non regole. Se ti capita di usare slf4j e vuoi usare "logger" perché sei abituato a farlo da altri framework, o se è più facile da scrivere, o per leggibilità, vai avanti.