Edition de fichier log

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
creale
Messages : 16
Inscription : sam. 29/janv./2011 14:33

Edition de fichier log

Message par creale »

Bonjour,

J'aimerai alimenter un fichier de log pour mon application, mais visiblement, je m'y prend mal !

Ma fonction ne log que 2 ou 3 éléments au début et se bloque, sans compter qu'il me faudrait un code qui soit rapide pour ne pas engendrer de bouchon dans l’exécution de l'application.

Certain d'entre vous se sont-ils déjà penché sur le problème du fichier log ?

Merci d'avance
Agence web https://www.atoneo.com
Bougie personnalisée https://www.bougie-personnalisee.fr
Fabrication bougie https://www.fabricant-bougie.fr
Avis externalisés https://satisfactions-clients.com
Ecommerçants Alsaciens https://www.alsazon.shop
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Edition de fichier log

Message par falsam »

Tu souhaites que chaque fois que ton application se lance, tu alimentes séquentiellement un fichier texte avec une date, une heure et une information complémentaire ?
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Edition de fichier log

Message par Ar-S »

tout dépend de la fréquence de ton log, mais quoi qu'il en soit, il vaut mieux éviter de solliciter trop souvent le disque dure.
Une sauvegarde en quittant le logiciel devrait suffire ?

Tu devrais t'intéresser à la commande "OpenPreferences()"
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
creale
Messages : 16
Inscription : sam. 29/janv./2011 14:33

Re: Edition de fichier log

Message par creale »

C'est à dire que mon appli aura vocation à tourner sans que je soit devant, et j'aurai besoin en effet de savoir se qu'il se passe !

Concernant OpenPreferences(), si j'ai bien compris il s'agit là plus d'une fonction pour initialiser des variables à partir d'un fichier extrene lors du démarrage de l'appli c'est sa ?

Vous pensez que les accès fréquent en écriture sur un fichier peuvent poser problème ?
Agence web https://www.atoneo.com
Bougie personnalisée https://www.bougie-personnalisee.fr
Fabrication bougie https://www.fabricant-bougie.fr
Avis externalisés https://satisfactions-clients.com
Ecommerçants Alsaciens https://www.alsazon.shop
Avatar de l’utilisateur
flaith
Messages : 1487
Inscription : jeu. 07/avr./2005 1:06
Localisation : Rennes
Contact :

Re: Edition de fichier log

Message par flaith »

perso j'utilise ca pour générer mon fichier log:

Code : Tout sélectionner

Procedure ERROR_LOG(error.s)
  OpenFile(#FILENUM_ERR_LOG,#FILENUM_ERR_NAME)
    FileSeek(#FILENUM_ERR_LOG, Lof(#FILENUM_ERR_LOG))
    WriteStringN(#FILENUM_ERR_LOG, FormatDate("[%hh:%ii:%ss]", Date()) + " - " + error)
  CloseFile(#FILENUM_ERR_LOG)
EndProcedure
On lance la première fois :

Code : Tout sélectionner

CreateFile(#FILENUM_ERR_LOG,#FILENUM_ERR_NAME)
  WriteStringN(#FILENUM_ERR_LOG,"ERROR LOG--DATE:"+FormatDate(" %dd/%mm/%yyyy at %hh:%ii:%ss", Date()))
  WriteStringN(#FILENUM_ERR_LOG,"---------------")
CloseFile(#FILENUM_ERR_LOG)
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Edition de fichier log

Message par falsam »

Un exemple de code

Code : Tout sélectionner

Enumeration
  #MainForm
  #Button
  #LogFile
EndEnumeration

Global Date.s, Time.s

Procedure LogUpdate(Buffer.S)
  If OpenFile(#Logfile,"Log.txt")
    FileSeek(#LogFile, Lof(#Logfile)) ;Se positionne à la fin du fichier
    
    Date=FormatDate("%yyyy/%mm/%dd", Date())
    Time=FormatDate("%hh:%ii:%ss", Date())

    WriteStringN(#LogFile, Date+"-"+Time+"-"+Buffer, #PB_Ascii)

  EndIf
  
  CloseFile(#LogFile)
  
EndProcedure

Procedure MainFormShow()
  OpenWindow(#MainForm,0,0,800,600,"Nouvelle application",#PB_Window_ScreenCentered |#PB_Window_SizeGadget | #PB_Window_SystemMenu)
  ButtonGadget(#Button,20,20,80,24,"Clique Moi")
  LogUpdate("Ouverture de l'application")
EndProcedure


MainFormShow()

Repeat
  Select WaitWindowEvent()
    Case #PB_Event_Gadget
      If EventGadget()=#Button
        LogUpdate("Clique sur le boutton")
      EndIf
      

    Case #PB_Event_CloseWindow
      LogUpdate("Fermeture de l'application")
      End
  EndSelect
ForEver
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Répondre