The MongoLog class

The MongoLog class

(PECL mongo >=1.2.3)

Introduction

Logging can be used to get detailed information about what the driver is doing. The logging mechanism as used by MongoLog emits all log messages as a PHP notice. Depending on the server interface that you use, that means that they will either be sent to strerr (with PHP-CLI), or otherwise to the web server's error log. In order for log messages to be output by PHP their level (E_NOTICE) does need to be configured to be shown. That means the E_NOTICE bit needs to be part of PHP's error_reporting level and that display_errors is set to 1.

Logging is turned off, by default. This class allows you to turn on specific levels of logging for specific parts of the driver. Some examples:

<?php

// print every log message possible
MongoLog::setLevel(MongoLog::ALL); // all log levels
MongoLog::setModule(MongoLog::ALL); // all parts of the driver

// print significant events about replica set failover
MongoLog::setLevel(MongoLog::INFO);
MongoLog::setModule(MongoLog::RS);

// print info- and server tuning-level events from replica sets and connection pooling
MongoLog::setLevel(MongoLog::INFO|MongoLog::FINE);
MongoLog::setModule(MongoLog::RS|MongoLog::POOL);

?>

Class synopsis

MongoLog {
/* Constants */
const int NONE = 0 ;
const int ALL = 31 ;
level constants {
const int WARNING = 1 ;
const int INFO = 2 ;
const int FINE = 4 ;
module constants {
const int RS = 1 ;
const int POOL = 2 ;
const int IO = 4 ;
const int SERVER = 8 ;
const int PARSE = 16 ;
/* Fields */
public int $level ;
public int $module ;
/* Methods */
public static void getCallback ( void )
public static int getLevel ( void )
public static int getModule ( void )
public static void setCallback ( callable $log_function )
public static void setLevel ( int $level )
public static void setModule ( int $module )
}

Predefined Constants

MongoLog Constants

These constants can be used by both MongoLog::setLevel() and MongoLog::setModule().

MongoLog::NONE
Constant for turning logging off.
MongoLog::ALL
Constant for logging everything.

MongoLog Level Constants

These constants can be used by MongoLog::setLevel().

MongoLog::WARNING
This will print log messages about somewhat exceptional but not-quite-exception-worthy happenings.
MongoLog::INFO
Logs events that may be of interest to administrators, but are not particularly noteworthy.
MongoLog::FINE
Logs most events that the driver performs. Depending on the module being logged, this can be extremely noisy and is primarily for debugging.

MongoLog Module Constants

These constants can be used by MongoLog::setModule().

MongoLog::IO
Logs traffic to/from the database. Unless your program is trivial, this will create an enormous number of log messages.
MongoLog::PARSE
Log server string parsing.
MongoLog::POOL
Log connection pool activity. Creating new connections, reusing connections, and closing connections.
MongoLog::RS
Log replica set activity. Failovers, pinging, chosing secondaries to read from, etc.
MongoLog::SERVER
Log server status changes. Detecting primary, secondary and duplication detection.

Table of Contents


Customers Area | Contact us | Affiliates