Od wersji skutecznej Java, wyd. 2,
Jedyny wyjątek od poprzedniej reguły dotyczy „stałych pól”, których nazwy powinny składać się z jednego lub więcej wielkich liter oddzielonych znakiem podkreślenia, na przykład VALUES lub NEGATIVE_INFINITY. Pole stałe to statyczne pole końcowe, którego wartość jest niezmienna . Jeśli statyczne pole końcowe ma typ pierwotny lub niezmienny typ odniesienia (pozycja 15), to jest to pole stałe. Na przykład stałe wyliczeniowe są polami stałymi. Jeśli statyczne pole końcowe ma zmienny typ odniesienia, może nadal być polem stałym, jeśli obiekt odniesienia jest niezmienny.
Podsumowując, stała == statyczny finał, plus jeśli jest to referencja (w porównaniu z typem prostym), niezmienność.
Patrząc na rejestrator slf4j,
http://www.slf4j.org/api/org/slf4j/Logger.html
Jest niezmienny. Z drugiej strony rejestrator JUL jest zmienny. Rejestrator log4j jest również modyfikowalny. Tak więc, aby być poprawnym, jeśli używasz log4j lub JUL, powinien to być „logger”, a jeśli używasz slf4j, powinien to być LOGGER.
Zauważ, że strona slv4j javadocs, do której prowadzi link powyżej, zawiera przykład, w którym używają „logger”, a nie „LOGGER”.
Są to oczywiście tylko konwencje, a nie reguły. Jeśli akurat używasz slf4j i chcesz użyć „loggera”, ponieważ jesteś przyzwyczajony do tego z innych frameworków, lub jeśli łatwiej jest pisać lub dla czytelności, śmiało.