(PECL mongo >= 1.3.0)
MongoLog::setCallback — Establece una función de llamada de retorno para ser invocada en eventos
Esta función establecerá una función de llamada de retorno par ser invocada por eventos de MongoLog en lugar de por advertencias desdencadenadas.
log_function
La función a llamar en eventos.
La función debería tener el siguiente prototipo
$module
, int $level
, string $message
)module
level
message
Devuelve TRUE
en caso de éxito o FALSE
en caso de error.
Ejemplo #1 Ejemplo de MongoLog::setCallback()
<?php
function module2string($module)
{
switch ($module) {
case MongoLog::RS: return "REPLSET";
case MongoLog::CON: return "CON";
case MongoLog::IO: return "IO";
case MongoLog::SERVER: return "SERVER";
case MongoLog::PARSE: return "PARSE";
default: return "UNKNOWN";
}
}
function level2string($level)
{
switch ($level) {
case MongoLog::WARNING: return "WARN";
case MongoLog::INFO: return "INFO";
case MongoLog::FINE: return "FINE";
default: var_dump($level); return "UNKNOWN";
}
}
function callback($module, $level, $message)
{
echo date("Y-m-d H:i:s - ");
printf("%s (%s): %s\n", module2string($module), level2string($level), $message);
}
MongoLog::setLevel(MongoLog::ALL);
MongoLog::setModule(MongoLog::ALL);
MongoLog::setCallback("callback");
new MongoClient();
?>
El resultado del ejemplo sería algo similar a:
2013-07-09 09:41:42 - PARSE (INFO): Parsing localhost:27017 2013-07-09 09:41:42 - PARSE (INFO): - Found node: localhost:27017 2013-07-09 09:41:42 - PARSE (INFO): - Connection type: STANDALONE 2013-07-09 09:41:42 - CON (INFO): mongo_get_read_write_connection: finding a STANDALONE connection 2013-07-09 09:41:42 - CON (INFO): connection_create: creating new connection for localhost:27017 2013-07-09 09:41:42 - CON (INFO): stream_connect: Not establishing SSL for localhost:27017 2013-07-09 09:41:42 - CON (INFO): get_server_flags: start 2013-07-09 09:41:42 - CON (FINE): send_packet: read from header: 36 2013-07-09 09:41:42 - CON (FINE): send_packet: data_size: 95 2013-07-09 09:41:42 - CON (FINE): get_server_flags: setting maxBsonObjectSize to 16777216 2013-07-09 09:41:42 - CON (FINE): get_server_flags: setting maxMessageSizeBytes to 48000000 2013-07-09 09:41:42 - CON (INFO): is_ping: pinging localhost:27017;-;.;1543 2013-07-09 09:41:42 - CON (FINE): send_packet: read from header: 36 2013-07-09 09:41:42 - CON (FINE): send_packet: data_size: 17 2013-07-09 09:41:42 - CON (INFO): is_ping: last pinged at 1373359302; time: 0ms 2013-07-09 09:41:42 - REPLSET (FINE): finding candidate servers 2013-07-09 09:41:42 - REPLSET (FINE): - all servers 2013-07-09 09:41:42 - REPLSET (FINE): filter_connections: adding connections: 2013-07-09 09:41:42 - REPLSET (FINE): - connection: type: STANDALONE, socket: 42, ping: 0, hash: localhost:27017;-;.;1543 2013-07-09 09:41:42 - REPLSET (FINE): filter_connections: done 2013-07-09 09:41:42 - REPLSET (FINE): limiting by seeded/discovered servers 2013-07-09 09:41:42 - REPLSET (FINE): - connection: type: STANDALONE, socket: 42, ping: 0, hash: localhost:27017;-;.;1543 2013-07-09 09:41:42 - REPLSET (FINE): limiting by seeded/discovered servers: done 2013-07-09 09:41:42 - REPLSET (FINE): limiting by credentials 2013-07-09 09:41:42 - REPLSET (FINE): - connection: type: STANDALONE, socket: 42, ping: 0, hash: localhost:27017;-;.;1543 2013-07-09 09:41:42 - REPLSET (FINE): limiting by credentials: done 2013-07-09 09:41:42 - REPLSET (FINE): sorting servers by priority and ping time 2013-07-09 09:41:42 - REPLSET (FINE): - connection: type: STANDALONE, socket: 42, ping: 0, hash: localhost:27017;-;.;1543 2013-07-09 09:41:42 - REPLSET (FINE): sorting servers: done 2013-07-09 09:41:42 - REPLSET (FINE): selecting near servers 2013-07-09 09:41:42 - REPLSET (FINE): selecting near servers: nearest is 0ms 2013-07-09 09:41:42 - REPLSET (FINE): - connection: type: STANDALONE, socket: 42, ping: 0, hash: localhost:27017;-;.;1543 2013-07-09 09:41:42 - REPLSET (FINE): selecting near server: done 2013-07-09 09:41:42 - REPLSET (INFO): pick server: random element 0 2013-07-09 09:41:42 - REPLSET (INFO): - connection: type: STANDALONE, socket: 42, ping: 0, hash: localhost:27017;-;.;1543
Esta función solamente está disponible con PHP 5.3.0 y posterior.