Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] Najlepszy sposób zapisu logów
Forum PHP.pl > Forum > Przedszkole
SlimShady
Cześć,

w moim projekcie zapisuję sobie błędy zwracane przez PDOException do pliku (log), aby administrator mógł spokojnie przeglądać zaistniałe problemy. Najważniejszym elementem tego procesu, jest samo zapisanie danych. Wiadomo, nie można dopuścić do sytuacji, w której 9793713 użytkowników utworzy ten sam wpis, dlatego sprawdzam sobie czas ostatniej modyfikacji pliku, za pomocą funkcji filemtime(). Jeśli log był zmieniany w ciągu minionych 10 minut, nie dopisuję nic nowego, w przeciwnym razie - dodaje wpis. Tak się teraz zastanawiam, czy operacja ta jest najlepszym wyborem. Może przecież, w pobliskim czasie zaistnieć zupełnie inny błąd, niż ten przedtem, a nie zostanie on 'uchwycony'. Macie jakieś sposoby na jak najbardziej racjonalny zapis logów?
ber32
Pokaż kod
SlimShady
Po co Ci kod? tongue.gif ja pytam jak tu najlepiej uniknąć wielokrotnego zapisu tego samego logu, w dość wydajny sposób tongue.gif

  1. [...]
  2. $file = './tmp/log/'.date('my').'.html';
  3.  
  4. if (@filemtime($file) < time() - $log_time) {
  5. $log = 'info.. info.. i info..';
  6. @file_put_contents($file, $log);
  7. }
  8. [...]
ber32
no bo widzisz niektóre logi nogą występować co np. 1 miesiąc, więc się zastanawiam czemu tyle logów
SlimShady
wiesz, to projekt mający na celu naukę tworzenia gier w PHP.. specyficzny projekt, coś jakby logi developerskie, więc zaktualizowałem specjalnie dla Ciebie post up o kod.
ber32
Może baza danych
SlimShady
Logi o błędzie bazy danych, zapisywać do bazy danych, podczas, gdy ona zgłasza błąd? tongue.gif nici, chyba nic nie wymyślę lepszego od sprawdzania daty modyfikacji..
ber32
Jeżeli to nie są błędy samego połączenia to czemu nie. Nie wyjaśniłeś jakie to są błędy podałeś tylko PDOException.
SlimShady
ogólnie, miałem na myśli obsługę PDOException w try .. catch, i właśnie w catch, umieszczam sobie zapis zwracanych błędów, aby twórca, czy to też późniejszy admin, mógł sobie wertować zaistniałe problemy.

edit:
@up, zajrzę na pewno tongue.gif
ber32
To ja wiem. Ale jakie błędy chcesz zapisywać w logi.

Za parę dni zajmę się właśnie tym zagadnieniem więc zapraszam na stronę w stopce do zakładki class PDO
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.