Вы входите в свою БД, где вы входите, когда ваша БД не работает? - PullRequest
2 голосов
/ 15 октября 2008

Я работаю с входом в PHP с помощью Pear , и я сталкиваюсь со стандартной проблемой: могу ли я использовать файловое ведение журнала, когда БД недоступна? Я не против, если он медленный из-за проблем параллелизма, но он не может не работать из-за нескольких одновременных обращений.

Я задаю этот вопрос в целом (для других веб-технологий) и специально для Pear для PHP.

Спасибо!

Ответы [ 2 ]

6 голосов
/ 18 октября 2008

Как правило, вход в файловую систему является хорошим резервом, если вы не можете подключиться к своей базе данных. Одновременные попадания не должны быть проблемой (блокировки ...). Если у вас уже есть журналы, адаптированные для базы данных, возможно, самый простой способ - использовать sqlite как запасной вариант.

В этом случае другим способом будет отправка по электронной почте событий журнала, помимо того, что они не теряются, этот подход должен помочь вам быстрее понять проблему с базой данных.

0 голосов
/ 16 октября 2008

Вы можете передать существующий объект базы данных в одноэлементный метод Log - если у вас нет базы данных, вы можете вернуться к альтернативным методам регистрации (или старому доброму user_error ())

require_once 'DB.php';
$db = &DB::connect('pgsql://jon@localhost+unix/logs');

$conf['db'] = $db;
$logger = &Log::singleton('sql', 'log_table', 'ident', $conf);
...