Miscellaneous
MongoLog::getCallback
Miscellaneous
PHP Manual

# 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

- MongoLog::getCallback — Retrieve the previously set callback function name
- MongoLog::getLevel — Gets the log level
- MongoLog::getModule — Gets the modules currently being logged
- MongoLog::setCallback — Set a callback function to be called on events
- MongoLog::setLevel — Sets logging level
- MongoLog::setModule — Sets driver functionality to log

Miscellaneous
MongoLog::getCallback
Miscellaneous
PHP Manual