O logger deve ser declarado estático ou não? Normalmente, tenho visto dois tipos de declaração para um logger:
log de log protegido = novo Log4JLogger (aClass.class);
ou
log de log estático privado = new Log4JLogger (aClass.class);
Qual deve ser usado? quais são os prós e contras de ambos?
static
é uma referência por classe. não estático é uma referência por instância (+ inicialização). Portanto, em alguns casos, o último vem com um impacto significativo na memória se você tiver toneladas de instâncias. Nunca use o não estático em um objeto frequente . Eu sempre uso a versão estática. (que deve ser maiúsculo LOG
)
private static final Log log
minúsculas. O logger não é uma constante, o logger é um objeto final estático (que pode sofrer mutação). Pessoalmente, sempre uso logger
.