Page 1 sur 1
Edition de fichier log
Publié : dim. 13/févr./2011 13:31
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
Re: Edition de fichier log
Publié : dim. 13/févr./2011 14:49
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 ?
Re: Edition de fichier log
Publié : dim. 13/févr./2011 14:55
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()"
Re: Edition de fichier log
Publié : dim. 13/févr./2011 15:08
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 ?
Re: Edition de fichier log
Publié : dim. 13/févr./2011 15:15
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)
Re: Edition de fichier log
Publié : dim. 13/févr./2011 15:29
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