©
This document uses PHP Chinese website manual Release
(PECL mongo >= 1.3.0)
MongoLog::setCallback — Sets a callback function to be invoked for events
$log_function
)This function will set a callback function to be invoked for events in lieu of emitting of PHP notice.
log_function
The callback function to be invoked on events. It should have the following prototype:
$module
, int $level
, string $message
)module
level
message
成功时返回 TRUE
, 或者在失败时返回 FALSE
。
Example #1 MongoLog::setCallback() example
<?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: 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 );
// We specify the function name here, but any callable (e.g. anonymous function) will work
MongoLog :: setCallback ( "callback" );
new MongoClient ();
?>
以上例程的输出类似于:
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
This function is only available with PHP 5.3.0 and later.