您登录到您的数据库,当您的数据库关闭时,您在哪里记录?

时间:2008-10-15 19:37:10

标签: database logging

我正在使用logging in PHP with Pear,我遇到了一个标准问题:当数据库不可用时,我可以使用基于文件的日志记录吗?我不介意它是否由于并发问题而变慢,但由于多次同时点击而无法工作。

我一般都在问这个问题(对于其他网络技术),特别是针对PHP的Pear。

谢谢!

2 个答案:

答案 0 :(得分:6)

通常,如果无法连接到数据库,则记录到文件系统会很好。同时命中不应该是一个问题(锁...)。如果你的日志已经适应了数据库,那么最简单的方法就是使用sqlite作为后退。

另一种方法是在这种情况下通过电子邮件发送日志事件,除了不丢失它们之外,这种方法应该让您更快地了解数据库问题。

答案 1 :(得分:0)

您可以将现有数据库对象传递到singleton method of 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);