It would be great if LoggerAppenderMongoDB could supply a timeout value to the Mongo() constructor when it connects for the first time.
Here's why: If something is wrong with the Mongo database server – for example, if the server is offline – it often takes a really long time (10 or more seconds) to fail and throw an exception. This is terrible in a situation where we need a quick turnaround time and are using the logger to collect diagnostic data.
Ideally, a timeout value could be specified in the log4php config XML file along with the host, name, etc.
I already have a patch that fixes this issue. The main gist of it is this. Change this:
$this->connection = new Mongo(sprintf('%s:%d', $this->host, $this->port));
$this->connection = new Mongo(sprintf('%s:%d', $this->host, $this->port), array("timeout" => $this->timeout));
- PHP Docs that explain the Mongo() constructor timeout value: http://php.net/manual/en/mongo.construct.php