IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Contribuez Pascal Discussion :

TEventLog : Création d'un fichier log


Sujet :

Contribuez Pascal

  1. #1
    Rédacteur
    Avatar de Chrispi
    Homme Profil pro
    Chargé de missions
    Inscrit en
    Juin 2020
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Chargé de missions
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2020
    Messages : 242
    Par défaut TEventLog : Création d'un fichier log
    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 : 249
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 : 253
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...

  2. #2
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 130
    Billets dans le blog
    9
    Par défaut
    Bonjour ! Merci pour cette contribution fort intéressante.

    Si quelqu'un, comme moi, ne trouve pas tout de suite le composant TEventLog, il se trouve sur l'onglet System de la palette de composants.

    Une petite remarque : puisque les variables User et NomPC ne servent (si j'ai bien compris) que dans la procédure FormCreate, autant les déclarer à l'intérieur de cette procédure.

    Autre remarque : chez moi (Linux Mageia) les variables d'environnement USERNAME et COMPUTERNAME n'existent pas. Je les ai remplacées de la façon suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    procedure TForm1.FormCreate(Sender: TObject);
    var
      User, NomPC: string;
    begin
    {$IFDEF windows}
      User := Application.EnvironmentVariable['USERNAME']; //Récupération de l'identifiant utilisateur
      NomPC := Application.EnvironmentVariable['COMPUTERNAME']; //Récupération du nom du PC
    {$ELSE}
      User := Application.EnvironmentVariable['USER'];
      NomPC := Application.EnvironmentVariable['HOSTNAME'];
    {$ENDIF}
      EventLog1.identification:= NomPC + ';' + User + ';';
    end;

  3. #3
    Rédacteur
    Avatar de Chrispi
    Homme Profil pro
    Chargé de missions
    Inscrit en
    Juin 2020
    Messages
    242
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations professionnelles :
    Activité : Chargé de missions
    Secteur : Santé

    Informations forums :
    Inscription : Juin 2020
    Messages : 242
    Par défaut
    Bonjour Roland,

    Merci pour ces remarques constructives et complémentaires à ce que j'ai développé.

Discussions similaires

  1. Création d'un fichier log
    Par yoyo-tns dans le forum VBScript
    Réponses: 7
    Dernier message: 10/04/2014, 09h23
  2. [PowerShell] Création d'un fichier log
    Par clemou01 dans le forum Programmation système
    Réponses: 0
    Dernier message: 01/02/2013, 14h03
  3. création fichier log
    Par aida1986 dans le forum Windows Communication Foundation
    Réponses: 1
    Dernier message: 03/06/2010, 12h15
  4. [VisualC++ 2010] Création de fichier log
    Par vitrix dans le forum C++
    Réponses: 1
    Dernier message: 12/05/2010, 20h45
  5. Création d'un fichier de log
    Par caranta0013 dans le forum Langage
    Réponses: 4
    Dernier message: 02/04/2007, 12h12

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo