Cómo registrar (slf4j) una vez por hora para reducir la frecuencia de los registros.
Tengo una clase de Java muy utilizada y solo quiero registrar una declaración cada hora, no todo el tiempo. Esto es para evitar una frecuencia no deseada en los registros.
Puedo tener un temporizador inicializado y solo registrar una vez que el temporizador haya alcanzado los 60 minutos, ¿hay alguna otra manera elegante de lograr esto?
davy.ai
Un enfoque potencial podría ser utilizar ScheduledExecutorService del paquete java.util.concurrent. Esto le permitiría programar una tarea para que se ejecute en intervalos fijos (en este caso, cada hora) con un mínimo sobrecarga.
Aquí hay un ejemplo de implementación utilizando SLF4J:
Este ejemplo de programador ejecutará la declaración de registro con un intervalo de una hora y una demora inicial que asegura que la primera declaración se registre exactamente 60 minutos después del inicio del programa.
Para utilizar esta clase, simplemente cree una instancia en su aplicación y llame al método
stop
cuando haya terminado para cerrar el servicio de ejecución.