How to use watchdog() in your own code

Last modified: May 6, 2009 - 23:46

This function is invaluable for debugging your own code.

In its simplest form, one might use the following code to insert new lines into the watchdog log.

<?php
watchdog
('error title', 'error message');
?>

The watchdog module in modules/watchdog.module has everything but the function itself. You can find the watchdog() function in includes/bootstrap.inc where the parameters are explained:

<?php
// snippet taken from 6.11 -- includes/bootstrap.inc
/**
* Log a system message.
*
* @param $type
*   The category to which this message belongs.
* @param $message
*   The message to store in the log. See t() for documentation
*   on how $message and $variables interact. Keep $message
*   translatable by not concatenating dynamic values into it!
* @param $variables
*   Array of variables to replace in the message on display or
*   NULL if message is already translated or not possible to
*   translate.
* @param $severity
*   The severity of the message, as per RFC 3164
* @param $link
*   A link to associate with the message.
*
* @see watchdog_severity_levels()
*/
function watchdog($type, $message, $variables = array(), $severity = WATCHDOG_NOTICE, $link = NULL) {
  global
$user, $base_root;

 
// Prepare the fields to be logged
 
$log_message = array(
   
'type'        => $type,
   
'message'     => $message,
   
'variables'   => $variables,
   
'severity'    => $severity,
   
'link'        => $link,
   
'user'        => $user,
   
'request_uri' => $base_root . request_uri(),
   
'referer'     => referer_uri(),
   
'ip'          => ip_address(),
   
'timestamp'   => time(),
    );

 
// Call the logging hooks to log/process the message
 
foreach (module_implements('watchdog', TRUE) as $module) {
   
module_invoke($module, 'watchdog', $log_message);
  }
}
?>

 
 

Drupal is a registered trademark of Dries Buytaert.