Upgrade Your Drupal Skills
We trained 1,000+ Drupal Developers over the last decade.
See Advanced Courses NAH, I know Enoughlog4drupal - an updated logging api for drupal 6
drupal 6 included an upgrade to the built in logging functionality (watchdog). drupal 6 exposes a new hook, hook_watchdog
which modules may implement to log Drupal events to custom destinations. it also includes two implementations, the dblog
module which logs to the watchdog table, and the syslog
module which logs to syslog.
with these upgrades, log4drupal is less critical addition to a drupal install, and i hesitated before providing a drupal 6 upgrade. however, eventually i decided that log4drupal is still a useful addition to a drupal development environment as log4drupal provides the following features still not provided by the upgraded drupal 6 watchdog implementation :
- a java-style stacktrace including file and line numbers, showing the path of execution
- automatic recursive printing of all variables passed to the log methods
- ability to change the logging level on the fly
in addition, the drupal 6 version of log4drupal includes the following upgrades from the drupal 5 version
- all messages sent to the watchdog method are also output via log4drupal
- severity levels have been expanded to confirm to RFC 3164
- log module now loaded during the drupal bootstrap phase so that messages may be added within
hook_boot
implementations.
you may download the drupal 6 version here. see below for general information on what this module is about and how it works.
what is log4drupal?
log4drupal is a simple api that writes messages to a log file. each message is tagged with a particular log priority level (e.g., debug, info, warn, error or emergency) and you may also set the overall log threshold for your system. only messages with a priority level above your system threshold are actually printed to your log file. the system threshold may changed at any time, using the log4drupal administrative interface. you may also specify a level above which a stack trace will be appended to each mesage.
installation
don't forget to read the included README.txt file. before enabling this module you must install the Pear Log package on your server.
module options
the module options are very similar to the drupal 5 version, and are shown below.
examples
log4drupal is best explained by example. suppose you had a module example.module
containing the following code:
function example_user($op, &$edit, &$account, $category = NULL) { log_debug("The example_user method has been called for operation $op for account", $account);
if($account->uid == 1) {
log_warn("That nasty super-user is creeping around again!!");
}
}
if your logging level is set to debug
and you stacktrace level is set to warn
, your log file will contain the following messages. notice that the $account
object is automatically rendered recursively.
[10:29:19 03/30/09] [debug] [example.module:5] The example_user method has been called for operation load for account
stdClass Object
(
[uid] => 1
[name] => admin
[pass] => 350c27da74479768b5402673ce
[mail] => [email protected]
[mode] => 0
[sort] => 0
[threshold] => 0
[theme] =>
[signature] =>
[created] => 1237827294
[access] => 1238434111
[login] => 1238429857
[status] => 1
[timezone] =>
[language] =>
[picture] =>
[init] => [email protected]
[data] => a:0:{}
[roles] => Array
(
[2] => authenticated user
))
[10:29:19 03/30/09] [warning] [example.module:8] That nasty super-user is creeping around again!!
at /var/www/drupal/sites/all/modules/example/example.module:8
at /var/www/drupal/modules/user/user.module:22
at /var/www/drupal/modules/user/user.module:183
at /var/www/drupal/modules/user/user.module:1125
at /var/www/drupal/includes/menu.inc:410
at /var/www/drupal/includes/menu.inc:653
at /var/www/drupal/includes/menu.inc:1010
at /var/www/drupal/includes/menu.inc:999
at /var/www/drupal/includes/menu.inc:948
at /var/www/drupal/includes/menu.inc:719
at /var/www/drupal/modules/user/user.module:736
at /var/www/drupal/includes/module.inc:450
at /var/www/drupal/modules/block/block.module:473
at /var/www/drupal/includes/theme.inc:1571
at /var/www/drupal/includes/theme.inc:617
at /var/www/drupal/includes/theme.inc:1765
at /var/www/drupal/includes/theme.inc:658
at /var/www/drupal/index.php:36
if your logging level is set to warn
and you stacktrace level is set to error
, your log file will contain the following messages. notice that the debug
message is no longer printed at all, and the warn
message no longer includes a stacktrace.
[10:40:06 03/30/09] [warning] [example.module:8] That nasty super-user is creeping around again!!
all watchdog messages will also appear in your log4drupal log file. for example, as long as your logging level is set to notice
or below, you will see the following message in your log file each time a user logs in
[11:02:43 03/30/09] [notice] [user.module:1368] Session opened for admin.
suggestions for new features always welcome.
About Drupal Sun
Drupal Sun is an Evolving Web project. It allows you to:
- Do full-text search on all the articles in Drupal Planet (thanks to Apache Solr)
- Facet based on tags, author, or feed
- Flip through articles quickly (with j/k or arrow keys) to find what you're interested in
- View the entire article text inline, or in the context of the site where it was created
See the blog post at Evolving Web