L'astuce du navigateur web : Une solution méconnue mais très efficace consiste à ouvrir votre fichier .log directement avec un navigateur (Internet Explorer, Chrome, Edge, etc.). Le navigateur ne verrouille pas le fichier et affiche le texte correctement (surtout si l'extension est .log, le formatage reste lisible).
Note : La solution "Tableau de bord" : PROC PRINTTO et HTML
Pour aller plus loin qu'une simple lecture de texte, vous pouvez rediriger vos logs vers un format HTML. Cela permet de créer de véritables tableaux de bord de suivi (avec des statuts colorés : vert pour fini, jaune pour en cours, etc.).
L'idée est d'utiliser la procédure PROC PRINTTO pour router la log vers un fichier HTML. Voici un exemple de macro proposée par la communauté :
%MACRO PRINTTO(_logPath=, _jobID=, _jobName=);
%LOCAL dt;
%LET dt = %sysFunC(dateTime(), DATETIME16.);
/* Initialisation du fichier HTML */
FILENAME L_PATH "&_logPath";
DATA _null_;
file L_PATH;
put "<PRE>"; /* Balise pour conserver le formatage */
RUN;
FILENAME L_PATH CLEAR;
/* Redirection de la log */
PROC PRINTTO LOG = "&_logPath";
RUN;
%PUT NOTE: Job &_jobID - &_jobName a demarre a &dt;
%MEND;
1
%MACRO PRINTTO(_logPath=, _jobID=, _jobName=);
2
%LOCAL dt;
3
%LET dt = %sysFunC(dateTime(), DATETIME16.);
4
5
/* Initialisation du fichier HTML */
6
FILENAME L_PATH "&_logPath";
7
DATA _null_;
8
file L_PATH;
9
put "<PRE>"; /* Balise pour conserver le formatage */
10
RUN;
11
FILENAME L_PATH CLEAR;
12
13
/* Redirection de la log */
14
PROC PRINTTO LOG = "&_logPath";
15
RUN;
16
17
%PUT NOTE: Job &_jobID - &_jobName a demarre a &dt;
18
%MEND;
En ouvrant ce fichier HTML dans un navigateur et en utilisant l'actualisation automatique, vous pouvez suivre l'avancement de vos traitements confortablement.
Le problème du fichier vide (Buffering)
Même si vous réussissez à ouvrir le fichier, il arrive souvent que sa taille reste bloquée à 0 Ko ou qu'elle ne se mette pas à jour pendant de longues périodes, même si le programme tourne.
Limites : Bien que très utile, cette option ne garantit pas toujours une mise à jour instantanée seconde par seconde (cela dépend aussi de la charge disque et de l'OS), mais elle réduit considérablement le délai d'apparition des logs.
Vous pouvez également combiner cela avec l'option -logparm :
-logparm "write=immediate rollover=session"
4. Outils tiers : Ramener Unix sur Windows
Si tail -f vous manque trop, la solution radicale consiste à installer des utilitaires qui portent les commandes Unix sous Windows. Des outils comme GnuWin32, UnxUtils ou Cygwin vous permettent d'utiliser tail sur Windows pour surveiller vos fichiers logs exactement comme sur un serveur Linux.
The codes and examples provided on WeAreCAS.eu are for educational purposes. It is imperative not to blindly copy-paste them into your production environments. The best approach is to understand the logic before applying it. We strongly recommend testing these scripts in a test environment (Sandbox/Dev). WeAreCAS accepts no responsibility for any impact or data loss on your systems.
SAS and all other SAS Institute Inc. product or service names are registered trademarks or trademarks of SAS Institute Inc. in the USA and other countries. ® indicates USA registration. WeAreCAS is an independent community site and is not affiliated with SAS Institute Inc.
This site uses technical and analytical cookies to improve your experience.
Read more.