Bonjour,

L'idée est de proposer quelque chose de relativement simple pour créer un fichier log en utilisant le composant TEventLog.

Pour cet exemple, nous déposons 3 boutons sur une forme ainsi que le composant TEventLog.

Nous paramétrons les propriétés du composant comme suit :

Nom : ImgTEventLog.jpg
Affichages : 255
Taille : 59,3 Ko

Nous déclarons les variables :
- User pour la récupération de l'identifiant de l'utilisateur de la session,
- NomPC pour la récupération du nom du PC utilisé par l'utilisateur.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
  private
    User : string;
    NomPC : string;
Nous codons les actions des boutons et de la fermeture de l'application que nous désirons voir figurer dans le fichier des logs.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
procedure TForm1.Button1Click(Sender: TObject);
begin
  EventLog1.log(';Clic bouton 1');
end;
 
procedure TForm1.Button2Click(Sender: TObject);
begin
  EventLog1.log(';Clic bouton 2');
end;
 
procedure TForm1.Button3Click(Sender: TObject);
begin
  EventLog1.log(';Clic bouton 3');
end;
 
procedure TForm1.FormClose(Sender: TObject; var CloseAction: TCloseAction);
begin
  EventLog1.log(';Fermeture application');
end;
Vous avez sûrement remarqué le point-virgule avant l'action à enregistrer. Celui-ci servira de séparateur. Il peut prendre d'autant plus d'importance si nous voulons générer un fichier .csv plutôt qu'un fichier .log ou .txt. En effet, à l'ouverture avec Excel, les items seront bien répartis en colonnes.

A la création de la forme, nous récupérons l'identifiant de session et le nom du PC de l'utilisateur pour les utiliser au niveau de la propriété identification du composant TEventLog.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
procedure TForm1.FormCreate(Sender: TObject);
begin
  User:= Application.EnvironmentVariable['USERNAME']; //Récupération de l'identifiant utilisateur
  NomPC:= Application.EnvironmentVariable['COMPUTERNAME']; //Récupération du nom du PC
  EventLog1.identification:= NomPC + ';' + User + ';';
end;
Il y encore des points-virgules séparateurs...

Maintenant, si tout a été bien fait, après compilation, lancement de l'application et avoir un peu joué avec les boutons, à son ouverture nous devrions obtenir un fichier contenant les évènements horodatés, attribués à un utilisateur et localisés sur un PC, comme dans celui-ci :

Nom : ImgFichlog.jpg
Affichages : 262
Taille : 196,8 Ko

Le fichier log ayant été créé. Celui-ci grossissant au fur et à mesure de l'utilisation de l'application, il faudra penser à mettre en place une stratégie qui permettra de l'alléger et d'archiver les logs...