SlimShady
7.07.2013, 16:52:57
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?
SlimShady
7.07.2013, 17:11:05
Po co Ci kod?

ja pytam jak tu najlepiej uniknąć wielokrotnego zapisu tego samego logu, w dość wydajny sposób

[...]
$file = './tmp/log/'.date('my').'.html';
$log = 'info.. info.. i info..';
@file_put_contents($file, $log);
}
[...]
ber32
7.07.2013, 17:14:33
no bo widzisz niektóre logi nogą występować co np. 1 miesiąc, więc się zastanawiam czemu tyle logów
SlimShady
7.07.2013, 17:16:20
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.
SlimShady
7.07.2013, 17:28:50
Logi o błędzie bazy danych, zapisywać do bazy danych, podczas, gdy ona zgłasza błąd?

nici, chyba nic nie wymyślę lepszego od sprawdzania daty modyfikacji..
ber32
7.07.2013, 17:31:01
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
7.07.2013, 17:36:47
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
ber32
7.07.2013, 17:38:12
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