Comment puis-je rediriger la sortie d'une collecte de données détaillée vers un fichier? Le site Web de Sun montre un exemple pour Unix mais cela ne fonctionne pas pour Windows.
De la sortie de Java -X
:
-Xloggc: <fichier> enregistre le statut du GC dans un fichier avec des horodatages
Documenté ici :
- Xloggc: nom du fichier
Définit le fichier vers lequel les informations sur les événements GC détaillés doivent être redirigées pour la journalisation. Les informations écrites dans ce fichier sont similaires à la sortie de
-verbose:gc
avec le temps écoulé depuis le premier événement GC précédant chaque événement enregistré. Le-Xloggc
L'option remplace-verbose:gc
_ si les deux sont donnés avec la même commandeJava
.Exemple:
-Xloggc: garbage-collection.log
Donc, le résultat ressemble à ceci:
[.____] 0.590: [GC 896K-> 278K (5056K), 0,0096650 sec] 0.906: [GC 1174K-> 774K (5056K), 0,0106856 sec] 1.320: [GC 1670K - -> 1009K (5056K), 0,0101132 s.] 1.459: [GC 1902K-> 1055K (5056K), 0,0030196 s] 1.600: [GC 1951K -> 1161K (5056K), 0,0032375 s] [.____] 1.686: [GC 1805K-> 1238K (5056K), 0,0034732 secondes] 1.690: [GC complète 1238K-> 1238K (5056K), 0,0631661 secondes] 1.874: [GC 62133K-> 61257K (65060K), 0.0014464 sec]
Si vous souhaitez également diriger la sortie vers un fichier séparé, vous pouvez effectuer les opérations suivantes:
Sur un Sun JVM:
-Xloggc:C:\whereever\jvm.log -verbose:gc -XX:+PrintGCDateStamps
SUR un IBM JVM:
-Xverbosegclog:C:\whereever\jvm.log
Pour ajouter aux réponses ci-dessus, il existe un bon article: Drapeaux utiles de la machine virtuelle Java - Partie 8 (enregistrement GC) par Patrick Peschlow.
Un bref extrait:
Le drapeau -XX:+PrintGC
(ou l’alias -verbose:gc
) active le mode "simple" d'enregistrement GC.
Par défaut, le journal du GC est écrit sur stdout. Avec -Xloggc:<file>
nous pouvons spécifier un fichier de sortie à la place. Notez que cet indicateur définit implicitement -XX:+PrintGC
et -XX:+PrintGCTimeStamps
ainsi que.
Si nous utilisons -XX:+PrintGCDetails
au lieu de -XX:+PrintGC
, nous activons le mode de journalisation GC "détaillé" qui diffère en fonction de l’algorithme GC utilisé.
Avec -XX:+PrintGCTimeStamps
un horodatage indiquant le temps réel écoulé en secondes depuis le démarrage de la machine virtuelle Java est ajouté à chaque ligne.
Si nous spécifions -XX:+PrintGCDateStamps
chaque ligne commence par la date et l’heure absolues.
JEP 158 introduit un système de journalisation commun à tous les composants de la machine virtuelle qui changera (et simplifiera OMI) le fonctionnement de la journalisation avec GC. Le PEC 158 a ajouté une nouvelle option de ligne de commande pour contrôler la journalisation de tous les composants de la machine virtuelle Java:
-Xlog
Par exemple, l'option suivante:
-Xlog:gc
enregistrera les messages étiquetés avec la balise gc
en utilisant info
niveau à stdout
. Ou celui-ci:
-Xlog:gc=debug:file=gc.txt:none
consignerait les messages étiquetés avec la balise gc
en utilisant le niveau debug
dans un fichier nommé gc.txt
sans décorations. Pour une discussion plus détaillée, vous pouvez consulter les exemples de la page JEP .