¿Es posible hacer un balanceo de los registros del recolector de basura en Sun JVM?Registros del recolector de basura rodante en java
Actualmente tengo generar registros usando:
-XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintGCDateStamps -verbose:gc -Xloggc:gc.log
Pero tengo que girar manualmente usando una cola FIFO y rotatelogs para crear un nuevo registro para cada día. Espero que haya una mejor solución para esto.
Tal vez haya una forma de acceder a estas entradas de registro desde dentro de java para poder redirigirlas a log4j?
Editar: la solución con cola FIFO no es lo suficientemente bueno, porque si el proceso que lee desde esta cola (por ejemplo rotatelogs) lee a reducir la velocidad se ralentizará todo el JVM (aparentemente Sun/Oracle hace el registro de GC de forma sincrónica)
Su solución me parece muy buena; ¿Qué no te gusta de eso? Tiene colocation: la rotación ocurre cerca de su invocación de Java (que configura el registro) en lugar de en el código de la aplicación (que debe ser ajeno al registro). –
También mi instinto diría que no, que no es posible o que si es posible, sería a través de una API privada y restringida que probablemente no desee forzar en su aplicación. –
-XX: + PrintGCDateStamps no se aplica a java5? –