web-dev-qa-db-fra.com

Comment rediriger la sortie de la collecte de déchets vers un fichier?

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.

68
djangofan

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 commande Java.

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] 
89
Michael Myers

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 
36
Marc Giombetti

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.

8

Journalisation Java 9 et JVM unifiée

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 .

4
Ali Dehghani