Differences
This shows you the differences between two versions of the page.
Next revision | Previous revision | ||
user:zeman:dz-parser:vystupy.pm [2007/03/28 16:39] zeman vytvořeno |
user:zeman:dz-parser:vystupy.pm [2007/03/28 23:42] (current) zeman |
||
---|---|---|---|
Line 1: | Line 1: | ||
- | Návrh řešení vstupů a výstupů v DZ Parseru | + | ====== vystupy.pm ====== |
+ | Modul umožňuje řídit výstupy z programu a podle potřeby je přesměrovávat nebo logovat do souborů, posílat mailem atd. Ti, kdo posílají data na výstup přes tento modul, se nemusejí starat, zda je soubor pro jejich druh výstupu již otevřen atd. | ||
+ | |||
+ | Standardní použití: místo '' | ||
+ | |||
+ | <code perl> | ||
+ | |||
+ | Pokud modulu vystupy někdo dříve neřekl něco jiného, váš text poputuje na '' | ||
+ | |||
+ | Typická věc, kterou asi budete chtít udělat, je zvolit jeden výstup, který má jít na '' | ||
+ | |||
+ | <code perl>use vystupy; | ||
+ | $vystupy:: | ||
+ | |||
+ | Zapnutí STDOUTu pro určitý výstup automaticky pro tento výstup vypne STDERR. Pokud byste chtěli posílat dotyčný výstup současně na STDOUT i STDERR, musíte to explicitně říct: | ||
+ | |||
+ | <code perl>use vystupy; | ||
+ | $vystupy:: | ||
+ | $vystupy:: | ||
+ | |||
+ | Skutečné výhody použití modulu vystupy se projeví teprve, když chcete své výstupy logovat do souborů, abyste mohli později zjišťovat, | ||
+ | |||
+ | Logování půjde zapnout buď globálně pro všechny výstupy (něco jako $vystupy:: | ||
+ | |||
+ | Další věci, které už jsou ve vystupy.pm nějak udělané, ale jejich implementaci by to chtělo dotáhnout, resp. zelegantnit: | ||
+ | * míra ukecanosti a ladění (některé skupiny výstupů lze plošně vypnout, pokud uživatel nepožaduje ladící režim) | ||
+ | * kódování jednotlivých výstupů (defaultně utf-8; další se přečte z konfiguráku, | ||
+ | * Některé výstupy chci pouze jako log, ale nechci je vidět na obrazovce (STDERR). Takže pokud je logování plošně vypnuté, tento výstup se úplně zahodí, pokud je zapnuté, tento výstup jde do logu. To není totéž, jako když je logování plošně vypnuté a nějaký soubor pošlu do logu natruc. Příklad: záznam konfigurace, | ||
+ | * Posílání některých výstupů mailem (typicky závěrečný mail s výsledky testu; mail je současně upozorněním, | ||
+ | |||
+ | ====== | ||
S výjimkou dočasných ladících výstupů na STDERR má monopol na výstup modul vystup. Všechny ostatní moduly volají jeho funkci vystup($nazev_vystupu). | S výjimkou dočasných ladících výstupů na STDERR má monopol na výstup modul vystup. Všechny ostatní moduly volají jeho funkci vystup($nazev_vystupu). | ||
Line 33: | Line 63: | ||
Jak tedy na výše nastíněný model přejít z toho, co mám teď? Ze všeho nejdřív asi musím odbourat konfigurační soubor. Z něj se mi pořád načítají cesty, odkud co číst a kam co psát. | Jak tedy na výše nastíněný model přejít z toho, co mám teď? Ze všeho nejdřív asi musím odbourat konfigurační soubor. Z něj se mi pořád načítají cesty, odkud co číst a kam co psát. | ||
- |