Le script ne lit aucune donnée. Il utilise un `data _null_` step, qui est une étape de traitement sans création de jeu de données, uniquement pour exécuter des routines de journalisation.
1 Bloc de code
Commentaire
Explication : Ce bloc est un commentaire détaillé expliquant comment configurer la journalisation personnalisée dans SAS. Il décrit la modification nécessaire au fichier de configuration `sasv9_u8.cfg` et fournit le contenu d'un fichier `log_config.xml` pour activer des logs rotatifs basés sur la date et l'utilisateur. Ceci est une tâche d'administration système.
SAS Version: '%S{sup_ver_long2}', Command: '%S{startup_cmd}'"/>
23
<param name="ConversionPattern" value="%m"/>
24
</layout>
25
</appender>
26
<!-- Administration message logger -->
27
<logger name="root">
28
<level value="TRACE"/>
29
</logger>
30
<!-- Root logger -->
31
<root>
32
<appender-ref ref="RFA_TIME"/>
33
</root>
34
</logging:configuration>
35
36
3.replace (D:\server\sas94\log) with your own path;
37
38
4.restart SAS;
39
40
*/
2 Bloc de code
Macro
Explication : Appels à une série de macros personnalisées (`%lstart`, `%lfatal`, `%lerror`, etc.) pour générer des messages de log de différents niveaux de sévérité (Fatal, Error, Warn, Info, Debug, Trace). Ces macros ne sont pas standards et font partie du système de logging personnalisé démontré dans le script.
Copié !
%lstart;
%lfatal(this is a test fatal log send by OPEN_CODE);
%lerror(this is a test error log send by OPEN_CODE);
%lwarn(this is a test warn log send by OPEN_CODE);
%linfo(this is a test info log send by OPEN_CODE);
%ldebug(this is a test debug log send by OPEN_CODE);
%ltrace(this is a test trace log send by OPEN_CODE);
%lbreak(this is a test log break send by OPEN_CODE);
1
%lstart;
2
%lfatal(this is a test fatal log send BY OPEN_CODE);
3
%lerror(this is a test error log send BY OPEN_CODE);
4
%lwarn(this is a test warn log send BY OPEN_CODE);
5
%linfo(this is a test info log send BY OPEN_CODE);
6
%ldebug(this is a test debug log send BY OPEN_CODE);
7
%ltrace(this is a test trace log send BY OPEN_CODE);
8
%lbreak(this is a test log break send BY OPEN_CODE);
3 Bloc de code
Macro
Explication : Définition de trois macros imbriquées (`%a`, `%b`, `%c`). Chaque macro appelle des macros de logging pour illustrer la traçabilité des appels dans les journaux. L'exécution commence par l'appel à la macro `%a`, qui déclenche une chaîne d'appels (`%a` -> `%b` -> `%c`), démontrant comment le contexte d'exécution peut être capturé dans les logs.
Copié !
%macro a;
%b;
%mend;
%macro b;
%lfatal(this is a test fatal log send by B);
%lerror(this is a test error log send by B);
%lwarn(this is a test warn log send by B);
%linfo(this is a test info log send by B);
%ldebug(this is a test debug log send by B);
%ltrace(this is a test trace log send by B);
%lbreak(this is a test log break send by B);
%c;
%mend;
%macro c;
%lfatal(this is a test fatal log send by C);
%lerror(this is a test error log send by C);
%lwarn(this is a test warn log send by C);
%linfo(this is a test info log send by C);
%ldebug(this is a test debug log send by C);
%ltrace(this is a test trace log send by C);
%lbreak(this is a test log break send by C);
%mend;
%a;
1
%macro a;
2
%b;
3
%mend;
4
5
%macro b;
6
%lfatal(this is a test fatal log send BY B);
7
%lerror(this is a test error log send BY B);
8
%lwarn(this is a test warn log send BY B);
9
%linfo(this is a test info log send BY B);
10
%ldebug(this is a test debug log send BY B);
11
%ltrace(this is a test trace log send BY B);
12
%lbreak(this is a test log break send BY B);
13
%c;
14
%mend;
15
16
17
%macro c;
18
%lfatal(this is a test fatal log send BY C);
19
%lerror(this is a test error log send BY C);
20
%lwarn(this is a test warn log send BY C);
21
%linfo(this is a test info log send BY C);
22
%ldebug(this is a test debug log send BY C);
23
%ltrace(this is a test trace log send BY C);
24
%lbreak(this is a test log break send BY C);
25
%mend;
26
%a;
4 Bloc de code
DATA STEP
Explication : Utilisation d'un `data _null_` pour exécuter des routines `call` spécifiques (`call lerror`, `call lwarn`, `call linfo`). Ces routines, qui sont probablement des fonctions personnalisées (via PROC FCMP), permettent d'écrire dans le log SAS configuré à partir d'une étape DATA, offrant une méthode de logging alternative aux macros.
Ce matériel est fourni "tel quel" par We Are Cas. Il n'y a aucune garantie, expresse ou implicite, quant à la qualité marchande ou à l'adéquation à un usage particulier concernant le matériel ou le code contenu dans les présentes. We Are Cas n'est pas responsable des erreurs dans ce matériel tel qu'il existe maintenant ou existera, et We Are Cas ne fournit pas de support technique pour celui-ci.
« Configurer la journalisation via le fichier de configuration sasv9.cfg (option -LOGCONFIGLOC) est la méthode la plus robuste pour sécuriser vos environnements. Cela garantit que chaque session SAS, quel que soit son mode de lancement, hérite d'une structure de log normalisée.
L'en-tête dynamique (HeaderPattern) incluant l'hôte, l'OS et la version est un atout précieux pour le support technique. Ce système transforme le log SAS — souvent perçu comme un simple fichier texte — en une véritable base de connaissances structurée, prête à être indexée par des outils d'analyse de logs modernes ou des solutions de supervision »
SAS et tous les autres noms de produits ou de services de SAS Institute Inc. sont des marques déposées ou des marques de commerce de SAS Institute Inc. aux États-Unis et dans d'autres pays. ® indique un enregistrement aux États-Unis. WeAreCAS est un site communautaire indépendant et n'est pas affilié à SAS Institute Inc.
Ce site utilise des cookies techniques et analytiques pour améliorer votre expérience.
En savoir plus.