我正在使用logging in PHP with Pear,我遇到了一个标准问题:当数据库不可用时,我可以使用基于文件的日志记录吗?我不介意它是否由于并发问题而变慢,但由于多次同时点击而无法工作。
我一般都在问这个问题(对于其他网络技术),特别是针对PHP的Pear。
谢谢!
答案 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);