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átorZkoumá 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ányLokalizace 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í:

Vhodné pro oboje:

Související články

Externí odkazy