Problemas con FileHandler concurrente

La descripción de mi problema es la siguiente:

Tengo desarrollados algunos plugins de Oracle Access Manager, cada plugin utiliza una instancia del Logger de OAM (Ya viene en la API), cada plugin deberá escribir su información hacia un archivo por lo cual utilice la clase FileHandler y se la agregue al Logger, pero tenia el problema de que creaba muchos archivos (más de los que le ponia en el parametro de archivos a rotar que era de 5) porque generaba archivos .lck mientras atendia otro plugin debido a que la concurrencia de llamadas a los plugins era muy alta, esto lo solucione utilizando un singleton de la clase FileHandler pero debido a que el metodo estático para obtener el Singleton esta sincronizado generá algunas excepciones de timeouts supongo porque va encolando las peticiones hacia el FileHandler, como podría solucionarlo ?

Dejo la emulación del plugin y una prueba standalone de como se comportaría mi código:

 

 

 

De antemano muchas gracias por su opinion y ayuda.

Saludos.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de ezamudio

antipatrón

Esto es un buen ejemplo de un antipatrón. Cuándo NO se debe usar un singleton.

Imagen de Cid

Ok pero como hago que cada

Ok pero como hago que cada plugin pueda loggear a un archivo diferente sin que se crucen, y por supuesto sin singleton ? ....
...
Ya lo he intentado con el logger de Java pero al tener llamadas concurrentes genera muchos archivos .lck y genera más archivos de los que le indico que debe de rotar precisamente porque mientras atiende una petición puede dejar a medias otra (por aquello de la concurrencia) con un archivo .lck y genera uno nuevo.

¿Programáticamente?

 

¿Y por qué hacerlo programáticamente? ¿Has intentado el procedimiento que se describe en ?

  normalmente se configura a través de su archivo  , único para cada JVM (1). Tomcat también lo utiliza, aunque ha agregado algunas clases para permitir que cada contexto pueda tener su propio  . Y en el caso de OAM, este utiliza el archivo  . (2)


Notas

  1. Si no se especifica alguno a través de la propiedad  , se utiliza uno por defecto que, en Windows, se localiza, ya sea en « » o ya sea en « ». Dependerá del JRE que se esté utilizando.

~~~

Imagen de Cid

Eso se lo dije a mi jefe y no hizo caso

Jajaja curiosamente eso ya lo había leido pero mi jefe insistio en hacerlo programáticamente le mostrare este link a ver si ahora si hace caso, muchas gracias @jpaul.