Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Poprawna implementacja loggera
Forum PHP.pl > Forum > Przedszkole
q.michal
Czesc wszystkim,


Stoje przed stworzeniem wlasnego loggera i zastanawiam sie ktory sposob bylby lepszy / bardziej by do Was przemawial:

ERROR = 300
WARNING = 200
NOTICE = 100

i pozniej sprawdzenie czy $level >= LEVEL, dzieki czemu podajac ze chcemy logowac WARNING, logowane defacto bylyby wszystkie wiadomosci z danego poziomu oraz te 'wazniejsze'.
Czy moze 2 rodzaj znany z PHP, gdzie:

ERROR = 1
WARNING = 2
NOTICE = 3

i sprawdzanie $level & LEVEL? Rozwiazanie pozwala bardziej dostosowac loggera do wlasnych potrzeb, ale trzeba pamietac aby wskazac wszystkie poziomy, np ustawiajac $level = ERROR | WARNING | NOTICE, ew wprowadzajac jeszcze ALL, ktory by zsumowal wszystkie poziomy.


Ktore rozwiazanie jest wg Was lepsze i dlaczego? Ktore z nich byscie wybrali?

Pozdrawiam.

nospor
W rozwiazaniu drugim nie zadne 1 2 3 tylko 1 2 4. Jak juz bierzesz sie za bitowki to rob to dobrze wink.gif

oczywiscie ze drugie. Przeciez to mamy na co dzien w php wie do tego jestesmy przyzwyczajeni
q.michal
Oczywiscie mialo byc 4.... zwykla literowka.
Przy czym mam jeszcze 1 pytanie, czy uwazasz ze warto definiowac stale pokroju NOTICE_AND_ABOVE ktore by kumulowaly 'wazniejsze' wiadomosci do zdefiniowanego poziomu? Czy pozostawic to juz przy wykorzystaniu cache, tak jak w 1 poscie?
nospor
Bedziesz mial az tyle typow logow by sie bawic w takie rzeczy?
q.michal
Planuje zrobic: DEBUG, INFO, NOTICE, WARNING, ERROR i ALERT, ew. jeszcze wszystkie zagregowane w ALL.
nospor
No to dodaj jeszcze LOW dla pierwszy 3 oraz HIGH dla dalszych trzech i juz
q.michal
tak zrobie, podziekowal wink.gif
com
polecam zapoznać sie z tym http://www.php-fig.org/psr/psr-3/ wink.gif
q.michal
Mam jeszcze 1 pytanie. Chcialem bowiem wprowadzic mozliwosc dostosowania tego co maja zawierac logi, np. IP, sesja, itd.
Chcialem zatem ustawic sobie format logowania za pomoca metody i pozniej 'zmienne' podmieniac na dane:

  1. $log->setFormat('[%T][%L] %M');


gdzie T, L i M oznaczalyby odpowiednio: timestamp, loglevel, message. Oczywiscie do dyspozycji byloby wiecej takich zmiennych. Ostatecznie chcialem wykonac na takim stringu kilka razy str_replace, aby podmienic je na wlasciwe dane.
Zastanawiam sie jednak czy jest waszym sens zabawy w takie cos i czy wielokrotne uzycie funkcji str_replace nie bedzie za bardzo obciazac i spowalniac calosci. W koncu 1 request moze logowac duzo danych, a samych requestow tez moze byc sporo.

Co o tym sadzicie?
viking
Nie łatwiej użyć coś gotowego np https://github.com/zendframework/zend-log? Ma wszystko o czym tu piszesz + takie rzeczy jak logowanie do firephp.
q.michal
A gdzie fun?
viking
W podpatrywaniu dobrych rozwiązań smile.gif
nospor
Kiedys fun byl w podpatrywaniu kapiacych sie na golasa dziewczyn... czasy sie zmieniaja wink.gif
q.michal
Cytat(nospor @ 9.03.2016, 12:21:41 ) *
Kiedys fun byl w podpatrywaniu kapiacych sie na golasa dziewczyn... czasy sie zmieniaja wink.gif


Dzis moge sie wykapac razem z zona. Nie musze jej podpatrywac biggrin.gif
nospor
No wlasnie fun polega na podpatrywaniu, na tej odrobinie ekscytyacji i mozliwosci bycia przylapanym. Gdy dostajesz wszystko od razu, to fun jest mniejszy - brak tej takiej jednej nutki ekscytacji. Trudno mi to opisac slowami, moze ktos mnie rozumie wink.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.