Quelqu'un parmi vous utilise la librairie Spring4d ?
Qu'en pensez vous?
J'aimerais notamment utiliser leur classe de gestion des logs.
Quelqu'un parmi vous utilise la librairie Spring4d ?
Qu'en pensez vous?
J'aimerais notamment utiliser leur classe de gestion des logs.
Sprin4D est très puissant je suis actuellement en veille dessus, si tu gères des listes dans tes projets ce Framework va t'en donner plusieurs intéressantes, ou alors mettre en place les injections de dépendances, etc.. Si c'est juste pour gérer un log ca me paraît un peu gros mais je suis sur que tu trouveras des cas pour utiliser la puissance du Framework dans tes projets.
Effectivement ça à l'air puissant, mais ça semble encore en chantier.
En fait j'aurais besoin d'une classe de gestion des logs qui soit multithread et qui permette de journaliser les fichiers de log. En gros un peu comme log4j en Java.
Pour le moment je ne trouve rien de satisfaisant.
Portage de log4j en delphi :
https://github.com/stanleyxu2005/log4d
ok merci.
Je connaissais, mais vu qu'il n'y a pas eu d'activité sur le projet depuis 3 ans, je ne suis pas sûr que le projet soit très vivant.
Le Tracing avec Event Tracing for Windows (ETW)
Sinon, dans mes services Windows, j'utilise tout simplement le TService.LogMessage avec un fichier log dédié à mon service
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
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 //------------------------------------------------------------------------------ procedure TxxxService.ServiceAfterInstall(Sender: TService); const xxxxx_DESCRIPTION = ' bla bla bla'; REG_KEY_EVENT_LOG = 'SYSTEM\CurrentControlSet\services\eventlog'; REG_KEY_THOM_EVENT_LOG = ' xxxEvent Log'; var Svc: SC_HANDLE; SvcMgr: SC_HANDLE; Info: SERVICE_DESCRIPTION; Reg: TRegistry; begin // Ajout de la description dans services.msc SvcMgr := OpenSCManager(nil, nil, STANDARD_RIGHTS_REQUIRED); try Svc := OpenService(SvcMgr, PChar(Self.Name), SERVICE_CHANGE_CONFIG); try Info.lpDescription := PChar(xxxxx_DESCRIPTION); Winapi.WinSvc.ChangeServiceConfig2(Svc, SERVICE_CONFIG_DESCRIPTION, @Info); finally CloseServiceHandle(Svc); end; finally CloseServiceHandle(SvcMgr); end; // Ajout du journal personnalisé dans mmc.exe dans sa variante "Afficher les journaux d'évènements" Reg := TRegistry.Create(); try Reg.RootKey := HKEY_LOCAL_MACHINE; if Reg.OpenKey(REG_KEY_EVENT_LOG, False) then begin if Reg.OpenKey(REG_KEY_THOM_EVENT_LOG, True) then begin // Ajout de l'application courante comme élément concerné par ce journal personnalisé spécifique à xxx // Je n'ai pas réussi à changer le fichier evt // Il sera donc dans "%SystemRoot%\System32\Winevt\Logs\" ce qui donne "C:\Windows\System32\winevt\Logs\xxx Event Log.evtx" if not Reg.KeyExists(Self.Name) then Reg.CreateKey(Self.Name); end; end; finally Reg.Free(); end; end;
Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !![]()
Attention Troll Méchant !
"Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
L'ignorance n'excuse pas la médiocrité !
L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
Il faut avoir le courage de se tromper et d'apprendre de ses erreurs
Partager