In Java, why is it best practice to declare a logger static final?
private static final Logger S_LOGGER
Actually static loggers can be "harmful" as they are supposed to work in a static context. When having a dynamic environment eg. OSGi it might help to use non-static loggers. As some logging implementations do a caching of loggers internally (AFAIK at least log4j) the performance impact might negligible.
One drawback of static loggers is eg. garbage collection (when a class is used only once eg. during initialization the logger will be still kept around).
For more details check:
See also: