Trasování (programování)
Trasová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. 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. 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. 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 [1])
- Aspect-oriented programming and related instrumentation techniques
- Windows software trace preprocessor (aka WPP)
- Linux system level and user level tracing with Kernel Markers and LTTng
Logování událostí:
- syslog (viz článek pro určité specifikace)
- Event Logging APIs for Microsoft Windows
- Windows Event Log (new for Windows Vista)
Vhodné pro oboje:
- Apache logging
- Event Tracing for Windows
- Java logging APIs
- Visual Basic logging (for Visual Basic .NET)
- Logcheck: open source utilita určená pro správu logu
- LogMX: a universal log/trace viewer (commercial)
- X-Trace (research project)
- Instruction set simulation