java logging static final

java - ¿Debería ser el registrador siempre final y estático?



logging static (3)

Se puede acceder a la clase desde muchos hilos. Debe ser logger en este caso también ser definitiva y estática? Gracias.


Hacer que el registrador sea final y / o estático no afectará en modo alguno la seguridad del hilo del uso del registrador. Si la instancia del registrador se está utilizando desde varios subprocesos, asegúrese de estar utilizando un registrador seguro para subprocesos.

En general, el registrador debe ser privado estático final, pero no asuma que esto lo hace seguro para subprocesos. Los marcos de trabajo de registro más comunes son seguros para subprocesos, por lo que si está utilizando uno de estos, debería estar bien.


Sí, el registrador debería ser estático y definitivo. También preferiblemente privado. Solo debe haber una instancia de registrador por clase y, a menos que cambie dinámicamente la preferencia de registro, es mejor que sea definitiva.

El registrador es seguro para subprocesos y no tiene que preocuparse por enhebrar.


Todos los principales paquetes de registro de Java ( java.util.logging , log4j , etc.) están sincronizados y son seguros para la ejecución de subprocesos. El patrón estándar de un registrador private final static por clase está bien, incluso si se llama a la clase desde varios subprocesos.