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):

procedure TForm1.FormCreate(Sender: TObject);
var
  b: TButton;
  procedure Vnitrni;
  begin
    CodeSite.Send( 'Třetí hláška', Self );
  end;

begin
// CodeSiteManager.ConnectUsingCopyData; // default
//  CodeSiteManager.ConnectUsingTcp;
//  CodeSiteManager.Enabled := False; // zakaz logovani
  CodeSite.Send( 'První hláška', Self );
  Caption := 'testovací'; // zmena Caption pro demonstraci
  CodeSite.Send( 'Druhá hláška', Self );
  CodeSite.EnterMethod(Self, 'Vnitrni');
  Vnitrni;
  CodeSite.ExitMethod(Self, 'Vnitrni'{,Result});


  // test vyjimek
  b := nil;
  try
    b.Click;
  except
    on E:Exception do
    begin
      CodeSite.SendMsg('Moje poznamka');
      CodeSite.SendException(E);
    end;
  end;
end;

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í".

var
  Dest: TCodeSiteDestination;

begin
  Dest := TCodeSiteDestination.Create( Self );

  Dest.LogFile.Active := True;
  Dest.LogFile.FileName := 'MyFirstLog.csl';
  Dest.LogFile.FilePath := '$(MyDocs)';

//  Dest.Viewer.Active := True;   // pokud chceme i zaroven LiveView

  CodeSite.Destination := Dest;
  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).

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

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).

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.

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.

Poslední komentáře

Comment RSS

Dle měsíců