Trasování (programování)
Author
Albert FloresTrasování je v informatice specializovaný zápis informací o běžícím programu (datalogger), které využívá zejména programátor pro ladění nebo mohou být využity pokročilým správcem systému pro diagnostické účely, případně též pro technickou podporu. Často dochází k záměně trasování a logování (viz dále).
Logování versus trasování
Rozdíl mezi trasováním a logováním není vždy jasný. Trasování využívá zejména programátor, logování pak správce počítačového systému. +more Záznamy logů jsou v unixových systémech umístěny v adresáři /var/log, v systémech řady Windows NT je lze zobrazit nástrojem Prohlížeč událostí.
Určení rozdílů mezi logováním a trasováním není jednoduché, protože některé technologie se používají pro trasování i pro logování. Následující tabulka vymezuje důležité, ale nedostatečně přesné rozdíly mezi nimi.
Logování událostí | Trasování |
---|---|
Zkoumá administrátor | Zkoumá vývojář |
Logování „high level" informace (například neúspěšná instalace programu) | Logování „low level" informace (například zamítnuté výjimky) |
Nesmí být „noisy", což znamená, že obsahuje mnoho opakujících se událostí, které nejsou potřebné | Může být „noisy" |
Standardní výstupní formát je často vhodný, někdy požadovaný | Málo omezený výstupní formát |
Události logu jsou často lokalizovány | Lokalizace není častá |
Přidáním nového typu události stejně jako nové zprávy nemusí být aktivní | Přidání nové zprávy musí být aktivní |
Logování událostí
Logování událostí poskytuje správci systému užitečné informace pro diagnostiku a auditování. Událostí je každá významná situace ať už v systému nebo programu, která vyžaduje pozornost uživatele nebo záznam do protokolu. +more Z protokolu je pak možné zjistit informace o součástech systému a sledovat například zabezpečení v místním nebo vzdáleném počítači.
Trasování
Trasování programu poskytuje vývojáři informace, které jsou užitečné pro odstranění chyb v programu. Tyto informace jsou nejen užívány během vývojového cyklu, ale také po uvolnění programu. +more Oproti logování události, trasování obvykle nesouvisí s konceptem událostních tříd nebo kódováním události. Dalšími důvody, proč logování založené na kódování události není vhodné pro trasovaní softwaru jsou:.
* protože trasování softwaru je „low-level", je zde mnoho typů zpráv, které by měly být definovány, mnoho z nich je možné použít jen na jednom místě * protože se předpokládá, že výstup z trasování, bude využívat vývojář, nemusí být tedy lokalizován * jsou zde zprávy, které by neměly být nikdy zobrazeny * trasovací zprávy by měly být obsaženy ve zdrojovém kódu, protože mohou usnadnit jeho čitelnost
Technologie a techniky
Trasování (software): * trasovací makro * výstup z debugeru (například [http://msdn2. microsoft. +morecom/en-us/library/aa363362. aspx]) * Aspect-oriented programming and related instrumentation techniques * Windows software trace preprocessor (aka WPP) * Linux system level and user level tracing with Kernel Markers and [url=http://lttng. org]LTTng[/url].
Logování událostí: * syslog (viz článek pro určité specifikace) * [url=http://msdn2. microsoft. +morecom/en-us/library/aa363652. aspx]Event Logging APIs[/url] for Microsoft Windows * [url=http://msdn2. microsoft. com/en-us/library/aa385780. aspx]Windows Event Log[/url] (new for Windows Vista).
Vhodné pro oboje: * [url=http://logging. apache. +moreorg/]Apache logging[/url] * [url=http://www. microsoft. com/whdc/devtools/tools/EventTracing. mspx]Event Tracing for Windows[/url] * [url=http://java. sun. com/j2se/1. 5. 0/docs/api/java/util/logging/package-summary. html]Java logging APIs[/url] * [url=http://msdn2. microsoft. com/en-us/library/microsoft. visualbasic. logging. aspx]Visual Basic logging[/url] (for Visual Basic . NET) * Logcheck: open source utilita určená pro správu logu * [url=http://www. logmx. com]LogMX: a universal log/trace viewer[/url] (commercial) * [url=http://www. x-trace. net]X-Trace[/url] (research project) * Instruction set simulation.
Související články
Externí odkazy
[url=https://web.archive.org/web/20090224184220/http://ltt.polymtl.ca/tracingwiki/index.php/TracingBook]The Tracing Book[/url]