Logování za pomocí CodeSite 4

vložil Radek Červinka 28. prosince 2010 01:37

Součástí Delphi XE je i Express verze nástroje CodeSite.

CodeSite je dle mého celkem podařený nástroj pro logování fungující na bázi klient - server, kdy při kompilaci je do programu začleněn kód komunikačního klienta. Komunikace je pomocí zasílání zpráv WmCopyData (standard) nebo pomocí TPC/IP (volitelně, ale v plné verzi i na vzdálené počítače). Tento nástroj poskytuje zajímavé možnosti i v této Express verzi.

Živé logování

Základním módem logování je mód živého logování, kdy při prvním zápisu do "logu" je spuštěn interaktivní prohlížeč logu, který přijímá logovací informace a v reálném čase je zobrazuje.

Pro použití logování je třeba přidat jednotku CodeSiteLogging a pak v programu napsat např.

  CodeSite.Send( 'logovaná informace');

což bylo hodně primitivní využití. Možností je mnohem více.

CodeSite.Send

Zkusíme něco komplikovanějšího. Mějme VCL aplikaci a ve formuláři v obsluze OnCreate (při použití uvedené jednotky):

    1procedure TForm1.FormCreate(Sender: TObject);
    2var
    3  b: TButton;
    4  procedure Vnitrni;
    5  begin
    6    CodeSite.Send( 'Třetí hláška', Self );
    7  end;
    8
    9begin
   10// CodeSiteManager.ConnectUsingCopyData; // default
   11//  CodeSiteManager.ConnectUsingTcp;
   12//  CodeSiteManager.Enabled := False; // zakaz logovani
   13  CodeSite.Send( 'První hláška', Self );
   14  Caption := 'testovací'; // zmena Caption pro demonstraci
   15  CodeSite.Send( 'Druhá hláška', Self );
   16  CodeSite.EnterMethod(Self, 'Vnitrni');
   17  Vnitrni;
   18  CodeSite.ExitMethod(Self, 'Vnitrni'{,Result});
   19
   20
   21  // test vyjimek
   22  b := nil;
   23  try
   24    b.Click;
   25  except
   26    on E:Exception do
   27    begin
   28      CodeSite.SendMsg('Moje poznamka');
   29      CodeSite.SendException(E);
   30    end;
   31  end;
   32end;

V prohlížeči logu budou postupně tyto informace (detail se zapíná kliknutím na lupu):

CodeSite

Všimněte si, že předáním parametru objektu jsem umožnil zobrazení detailu objektu!

CodeSite

Speciální pozornosti je třeba property Caption.

CodeSite

Trasování volání pomocí CodeSite.EnterMethod a CodeSite.ExitMethod.

CodeSite

Zobrazení výjimky.

Logování do souboru

Někdy je takové živé logování nepraktické (třeba u klienta) a raději oceníme soubor, který si v klidu a teple poté prohlédneme. V tomto případě provedeme "přesměrování".

    1var
    2  Dest: TCodeSiteDestination;
    3
    4begin
    5  Dest := TCodeSiteDestination.Create( Self );
    6
    7  Dest.LogFile.Active := True;
    8  Dest.LogFile.FileName := 'MyFirstLog.csl';
    9  Dest.LogFile.FilePath := '$(MyDocs)';
   10
   11//  Dest.Viewer.Active := True;   // pokud chceme i zaroven LiveView
   12
   13  CodeSite.Destination := Dest;
   14  CodeSite.Send( 'do souboru', Sender );

Kde $(MyDocs) je alias pro Dokumenty. Tento soubor lze pak otevřít dříve uvedeným programem. Navíc pokud odkomentujeme uvedený řádek, bude prováděno logování jak do souboru, tak do živého prohlížení.

Poznámky

Odstranění logování je možno buďto podmíněnou kompilací, nebo v případě, že nám stačí jeho zákaz tak pomocí

  CodeSiteManager.Enabled := False; // zakaz logovani

Plná verze umí logování i na vzdálený počítač via TCP (CodeSiteManager.ConnectUsingTcp), zasílání bitmap, screenshotů, streamů atd. (dle dokumentace).


Nabízíme Delphi školení na různá témata, primárně ve Vaší firmě.

Tagy: , ,

Nástroje

Komentáře

28.12.2010 3:15:17 #

pingback

Pingback from topsy.com

Twitter Trackbacks for
        
        LogovánĂ­ za pomocĂ­ CodeSite 4 -
        [delphi.cz]
        on Topsy.com

topsy.com

18.10.2013 11:16:07 #

TLama

ExitMethod bych pro jistotu umístil do try..finally bloku. Zaručí se tím zalogování opuštění metody i v případě vyjímky.

TLama

Komentování ukončeno

Naše nabídka

Partial English version.

MVP
Ing. Radek Červinka - Embarcadero MVP
profil na linkedin, Twitter:@delphicz

Nabízím placené poradenství a konzultace v oblasti programování a vývoje SW.
Dále nabízíme i vývoj speciálního software na zakázku.

Neváhejte nás kontaktovat (i ohledně reklamy nebo burzy práce).

Pokud chcete podpořit tento server libovolnou částkou, můžete použít PayPal. Moc děkuji.

Delphi Certified Developer

O Delphi.cz

Delphi je jediný moderní RAD nástroj podporující tvorbu nativních aplikací pro platformu Win32, Win64 , Mac OSX a na iPhone a Android (s výhledem na další platformy díky FireMonkey) na současném trhu (včetně Windows 8.1).

V současnosti je světová komunita přes dva miliónů vývojářů.

Delphi.cz je nezávislý portál pro uživatele Delphi. Portál není koncipován pro úplné začátečníky, i když i ti se zde nebudou nudit, ale spíše na programátory, kteří již něco znají a chtějí své znalosti dále rozvíjet a sledovat novinky.

Anketa

Poslední komentáře

Comment RSS