🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.delphi
Article #334646

Re: Debug & Logging system (CodeSite, SmartInspect)...

#334646
From: Piotr Rezmer
Date: Mon, 09 Jan 2012 18:50
82 lines
4414 bytes
wloochacz pisze:


Na początek przyznam się, że nie znam Codesite'a.

> I to wszystko prawda, ale... CodeSite równie dobrze może działać na
> warstwie transportowej TCP/IP a messages są używane domyślnie.

SI oferuje transporty:
1.binary files - pliki SIL (używam)
2.Named Pipes (używam)
3.TCP (nie używam)
4.Text Files (nie używam)
5.Memory (używam)

Może dziwić, dlaczego nie używam TCP. Otóż konsolę jeśli odpalam to 
praktycznie zawsze na serwerze. Użycie transportu TCP może spowalniać 
wykonywanie wątków, zwłaszcza gdy nie jest uruchomiona konsola.


Dla mnie ogromną zaletą SI jest bardzo dobry system filtrowania 
wyświetlanych w konsoli komunikatów. Dwoma kliknięciami myszy tworzę 
filtr ograniczający widok do komunikatów należących do okreslonego 
wątku. To wszystko pozwala zrozumieć działanie aplikacji wielowątkowych 
i wychwycić słabe punkty alogorytmu.

Konsola dostępna jest w dwóch wersjach:
-Redistributable (bezpłatna)
-Professional

Pierwsza z nich nie posiada mechanizmu korzystania z predefiniowanych 
filtrów. Dostępny jest tylko jeden - bieżący.


> Każdy logger może działać z różnymi Destinations - a więc równocześnie
> może logować np. do pliku, serwera TCP/IP czy LiveViewer'a.

Jeśli chodzi o różne przekroje logowania, to myślę że docelowo przydatne 
jest:
-posiadanie pełnych logów (level DEBUG) w celu analizowania problemów 
technicznych
-oddzielny log zbierający wybrane komunikaty (level ERROR, ew. dodatkowo 
WARNING). Plik ten może być monitorownay przez inne systemy np. Nagios

Przyznaję szczerze, że na razie ograniczam się do pierwszego przypadku. 
Standardowo ustawiam wielkość pojedynczego pliku SIL na 30 MB, liczba 
plików 30, rotacja codziennie.

Drugi "przekrój" logów to ich źródło. W SI realizuje się to za pomocą 
sesji. Robię to tak, że w każdej ważniejszej klasie (Controller, 
Boundary) wewnątrz bloku initialization tworzę nowy obiekt Session 
widoczny w implementacji unitu.

[OFF topic] Wydaje mi się, że lepiej nie używać sekcji Initialization. 
Może to wnosić niepotrzebne zamieszanie. Zdaję sobie sprawę, że ten 
mechanizm jest wykorzystywany do rejestracji klas w fabrykach, mam 
jednak mieszane uczucia.

Uważam, że nie jest dobrym pomysłem umieszczanie komunikatów z różnych 
sesji w oddzielnych plikach, lepiej zostawić je w jednym. Wtedy łatwiej 
jest analizować zależności czasowe pomiędzy komunikatami.

SI zapewnia logowanie nie tylko komunikatów tekstowych, ale również 
obiektów (np. TStringlist),typów prostych,, grafiki, pamięci, strumieni, 
stron HTML, screenshotów, datasetów itd.
Innym mechanizmem, który jest konkurencją dla Microsoftowego Performance 
Management jest wsparcie dla liczników i watchy. Możliwe jest logowanie 
wartości np. typu String, Integer. Aktualna wartość liczników jest 
prezentowana w dedykowanym oknie. Na podstawie zmian ww wartości możliwe 
jest utworzenie wykresów zmiany w czasie.

Jesli chodzi o architekturę logowania, dostępny jest jeszcze moduł SI 
Router umożliwiający centralne zapisywanie logów na dedykowanej maszynie.

Dla niektórych może mieć też znaczenie, że SI jest dostępny w formie 
bibliotek do Javy, C# (wspiera LINQ to SQL).


-- 
pozdrawiam
Piotr
XLR250&bmw_f650_dakar
Technical Details
Message-ID: <jefctu$frb$1@inews.gazeta.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
References: <jeetcf$s57$1@inews.gazeta.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.gazeta.pl!not-for-mail
From: Piotr Rezmer <piotr.rezmer_bez_spamu@ens.net.pl>
Newsgroups: pl.comp.lang.delphi
Subject: Re: Debug &  Logging system (CodeSite, SmartInspect)...
Date: Mon, 09 Jan 2012 19:50:32 +0100
Organization: "Portal Gazeta.pl -> http://www.gazeta.pl"
Lines: 82
Message-ID: <jefctu$frb$1@inews.gazeta.pl>
References: <jeetcf$s57$1@inews.gazeta.pl>
NNTP-Posting-Host: 77-252-224-134.ip.netia.com.pl
Mime-Version: 1.0
X-Trace: inews.gazeta.pl 1326135038 16235 77.252.224.134 (9 Jan 2012 18:50:38 GMT)
X-Complaints-To: usenet@agora.pl
NNTP-Posting-Date: Mon, 9 Jan 2012 18:50:38 +0000 (UTC)
X-User: prezmer
X-Antivirus: avast! (VPS 120109-0, 2012-01-09), Outbound message
In-Reply-To: <jeetcf$s57$1@inews.gazeta.pl>
X-Antivirus-Status: Clean
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; pl; rv:1.9.1.16) Gecko/20101125 Thunderbird/3.0.11
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit