Activer les logs de debug Java pour SAS/ACCESS interface to Hadoop
Contrairement aux autres module SAS/ACCESS, pour utiliser SAS/ACCESS avec un serveur Hadoop, un ensemble de fichiers JAR et de configuration Hadoop doit être disponible sur la machine client SAS. Cette particularité, c’est-à-dire l’absence d’un client logiciel packagé pour effectuer la communication entre SAS et la base de données, nécessite des manipulations spécifiques pour activer le mode DEBUG. En effet, Le module SAS/ACCESS interface to Hadoop utilise Java pour communiquer avec le cluster et l’activation des traces passe par le module Log4j, l’utilitaire de journalisation basé sur Java.
Vous obtenez alors le résultat suivant :
Le paramètre Dlog4j.configuration indique le chemin d’accès au fichier de configuration du module Lo4j :
Ce fichier se divise en deux parties :
par :
Une fois votre session SAS relancé, pour chaque opération SAS utilisant le JAVA, les traces seront redirigées dans le fichier /tmp/sas_log4j.log.
Attention, en fonction du niveau de log, le fichier peut devenir volumineux
Contenu du fichier sas.log4j.properties
Activation du mode DEBUG
Pour activer le mode DEBUG il faut donc configurer ce module Log4j. Les paramètres du module java Log4j sont spécifiés dans le fichier de configuration SAS sas.log4j.properties Pour localiser l’emplacement du fichier de configuration sas.log4j.properties, exécutez la commande dans une session SAS :
1 |
proc options option=jreoptions;run; |
1 2 3 4 5 6 7 8 9 |
JREOPTIONS=( -DPFS_TEMPLATE=/home/sas/SASHOME/SASFoundation/9.4/misc/tkjava/qrpfstpt.xml -Djava.class.path=/home/sas/SASHOME/SASVersionedJarRepository/eclipse/plugins/sas.launcher.jar -Djava.security.auth.login.config=/home/sas/SASHOME/SASFoundation/9.4/misc/tkjava/sas.login.config -Djava.security.policy=/home/sas/SASHOME/SASFoundation/9.4/misc/tkjava/sas.policy -Djava.system.class.loader=com.sas.app.AppClassLoader -Dlog4j.configuration=file:/home/sas/SASHOME/SASFoundation/9.4/misc/tkjava/sas.log4j.properties -Dsas.app.class.path=/home/sas/SASHOME/SASVersionedJarRepository/eclipse/plugins/tkjava.jar -Dsas.ext.config=/home/sas/SASHOME/SASFoundation/9.4/misc/tkjava/sas.java.ext.config -Dtkj.app.launch.config=/home/sas/SASHOME/SASVersionedJarRepository/picklist ) |
1 |
-Dlog4j.configuration=file:/home/sas/SASHOME/SASFoundation/9.4/misc/tkjava/sas.log4j.properties |
- Loggers - Utilisé pour émettre un message avec un niveau de gravité associé.
- Appenders - Utilisé pour envoyer le message à une cible de stockage.
1 2 3 |
log4j.rootCategory=ERROR, A1 log4j.logger.com.sas=WARN, A1 log4j.additivity.com.sas=false |
1 2 3 |
log4j.rootCategory=DEBUG, F1 log4j.logger.com.sas=DEBUG, F1 log4j.additivity.com.sas=true |
Activer le mode DEBUG pour valider un test
Linux
Pour ne pas écrire de façon systématique dans la log /tmp/sas_log4j.log et surcharger le système, il est possible de spécifier un fichier de configuration log4j et de ne l’utiliser qu’en phase de test ou de debug :
1 |
sas -nodms -jreoptions -Dlog4j.configuration=file:/opt/sas/spre/home/SASFoundation/sas.log4j.properties |
1 2 3 4 5 |
log4j.rootCategory=DEBUG, F1 log4j.appender.F1=org.apache.log4j.RollingFileAppender log4j.appender.F1.file=/tmp/sas_log4j.log log4j.appender.F1.layout=org.apache.log4j.PatternLayout log4j.appender.F1.layout.ConversionPattern=%d{MM-dd HH:mm:ss,SSS} [%t][%-5p %c{1}] - %m%n |