Affichage des journaux de travaux Java Batch
Lorsque vous exécutez des travaux Java Batch dans WebSphere Application Server Liberty, un journal est écrit pour chaque travail.
Les journaux sont créés dans la structure de répertoire suivante :
log directory/joblogs/job name/date/instance.job instance ID/execution.execution ID
Pour plus d'informations sur l'extraction ou la suppression de journaux de travaux à l'aide de l'API REST, voir la documentation REST API administration.
Configuration de la consignation des travaux
La consignation au journal des travaux par lots peut être configurée à l'aide de l'élément de configuration <batchJobLogging> <batchJobLogging enabled="true" maxRecords="1000" />.
L'attribut maxRecords indique le nombre d'enregistrements qui sont écrits dans une partie du journal de travail avant que les enregistrements se remettent à zéro dans la partie suivante.
La fonction par lots utilise un consignateur nommé com.ibm.ws.batch.JobLogger pour la consignation de certains messages par lots dans le journal de travail uniquement. Il peut s'agir, par exemple, de messages de cycle de vie de travail et de message de point de contrôle. Le consignateur n'écrit pas dans le journal serveur. Par défaut, le consignateur est activé pour les messages Level.FINE. Vous pouvez configurer le niveau du consignateur en l'indiquant dans la spécification de trace du serveur. Par exemple, <logging traceSpecification="*=info:com.ibm.ws.batch.JobLogger=all" />.
Les messages de journal qui sont écrits par l'unité d'exécution du travail, y compris les messages qui sont écrits par l'environnement d'exécution et par le code d'application, sont écrits à la fois dans l'historique de travail et dans le journal serveur.
Les fichiers System.out et System.err sont écrits uniquement dans le journal serveur mais pas dans le journal de travail.
Etapes partitionnées
Les étapes partitionnées comportent d'autres sous-répertoires pour chaque partition. Les fichiers journaux du répertoire execution ID contiennent des entrées de l'n qui exécute le travail de niveau supérieur. Les journaux de travaux pour les partitions sont stockés avec la structure suivante :
log directory/joblogs/job name/date/instance.job instance ID/execution.execution ID/nom de l'étape partitionné/numéro de partition
Flux de fractionnement
Si un flux de fractionnement se produit dans le travail, d'autres répertoires sont créés afin de capturer la sortie de l'unité d'exécution de chaque flux. Les fichiers journaux qui se trouvent dans le répertoire execution ID contiennent des entrées de l'n qui exécute le travail de niveau supérieur. Les journaux de travaux pour les unités d'exécution de flux sont stockés avec la structure suivante :
log directory/joblogs/job name/date/instance.job instance ID/execution.execution ID/split ID/flow ID
Evénements du journal des travaux
Si les événements de travail par lots sont activés, les événements du journal des travaux sont publiés lorsqu'une partie du journal est terminée et lorsqu'un travail passe à un état arrêté, tel qu'arrêté, échec ou terminé. Les messages d'événements du journal des travaux contiennent plusieurs propriétés JSON facilitant l'identification du message, ainsi que le contenu réel du fichier journal de travaux.
//The retrieved job log event message
Message msg
//Convert the Message to a TextMessage
TextMessage txtMsg = (TextMessage) msg;
//Convert the text in the message to a JsonObject
JsonObject jobLogEventObject = Json.createReader(new StringReader(txtMsg.getText())).readObject();
//Pull the job log text content from the JsonObject as an example
JsonArray logContentArray = jobLogEventObject.getJsonArray("contents");
Pour plus d'informations sur l'activation des événements de travail par lots, voir Activation de la publication d'événements de travail par lots.