Diskuze: Logy
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Tvůrce

Zobrazeno 10 zpráv z 10.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.
já bych to řešil přes databázi. Texťák ti nabobtná a bude se v něm blbě orientovat. Navíc asi zapisovat do třeba 1Gb texťáku taky nebude zrovna 3× rychlé.
No podle toho co chceš "logovat". Pokud jenom nějaké výjimky, atd. tak je asi ideální texťák. Pokud nějakou pravidelnou činnost, tak asi DB jinak by ti (jak už říkal už Michal) ten logovací "soubor" by mohl nechutně nabobtnat ...
Inserty do DB jsou dost pomalé, kvůli udržování indexu trvá vložení záznamu dlouho když jich je v tabulce hodně. Když loguješ do texťáku nějakým file_put_contents tak je to atomická operace, neřešíš lockování a hlavně to nezávisí na velikosti souboru. Logy si pak můžeš naparsovat třeba nějakým cronem a zpracovat jednou za den nebo tak.
Jasné, a jednou za X hodin, či dnů to vše vložím do databáze a soubor
vyčistím?
Přesně tak. Ještě dodám, abys použil multiinsert a nevkládal to tam po
jednom insertu for cyklem
Logy nedává smysl dávat do databáze pokud je nechci databázově
zpracovávat. Ve své podstatě je to datový odpad který se hodí při
rekonstrukci chodu programu a hledání problémů. Vytvářet si tím
zbytečně úzké hrdlo směrem k DB je přinejmenším k zamyšlení. Navíc se
logují i neobvyklé či havarijní stavy. Tedy zalogovat výpadek připojení k
SQL serveru by mohl být problém .
Starosti s bobtnáním logovacího souboru bych si tedy vůbec nedělal. Neznám moderní logovátko které by neobsahovalo omezení na maximální velikost souboru a při jenom překročení se vytvoří nový soubor nebo přepisují starší informace.
Navíc je zde pořád možnost kombinace. Třeba viz. log4net - logovací informace určitého "stupně" házet do souboru a jiného zase do databáze, mail, event log(u) apod.
Tak v podstatě mohu logovat do souborů podle data, ne?
Potom třeba při rozlišení aktivity uživatelů a nějakých chyb mohu jen posílat do jiného souboru.
aktivita/2014-07-07.txt
errory/2014-07-07.txt
Ano. To už pak záleží na logovátku který použiješ. Tady je výhodný nevymýšlet potísícáte kolo a najít si nějaký logovací systém který ti bude vyhovovat. Určitě se setkáš s tím, že minimálně Error/Warning/Debug/Info můžeš posílat každý do jiného "storage". Třeba EntepriseLibrary má ještě rozmanitější systém možností, ale to už není úplně pro každýho.
Naprostý souhlas s Milan Křepelka
Osobně zpracovávám závažné chybové hlášky(špatný dotaz do db,
neodeslal se email s objednávkou) do xml souboru, který se automaticky
kontroluje pluginem v prohlížeči.
Zobrazeno 10 zpráv z 10.