3

Drupal catches PHP warnings and notices to log them via dblog or syslog. As a result, there are two places to monitor for PHP errors (with the watchdog UI not well suited to cater for any large number of notices).

Is it possible to prevent this behavior and have ALL php errors be logged to the error_log defined in the php config?

2
  • If the syslog module (in core) is working as expected, you should be able to disable the dblog module (also core). That will remove the watchdog UI page as well. Dec 16, 2013 at 21:55
  • Thank you, but my question is neither aimed at disabling watchdog completely nor using syslog.
    – cjoy
    Dec 17, 2013 at 10:43

3 Answers 3

3

For that, you will need to implement the hook_watchdog to make calls to the error_log() function.

You could as example one of the places where is implemented, that is the syslog_watchdog. Instead of use the openlog() and syslog() function, you will use the error_log().

1
  • While this does not prevent PHP warnings and notices from being passed to dblog/watchdog, it makes possible the passing of php related entries to the default error_log. Thanks!
    – cjoy
    Dec 17, 2013 at 13:32
1

Rudimentary code example for the solution provided by @gerzenstl

/**
 * Implements hook_watchdog()
 */
function MYMODULE_watchdog(array $log_entry) {

  if($log_entry['type'] == 'php') {

    $output = format_string($log_entry['message'], $log_entry['variables']);
    $output =  strip_tags($output);
    error_log($output);

  }

}
0

Got here when googling for the same. I want watchdogs go to webserver logging, since I use Docker. After checking @gerzenstl links, I tried again looking if someone already coded it and finally found a module: https://www.drupal.org/project/logging_alerts

The 'errorlog' submodule does exactly this. Overall, all the modules are very complete and provide other useful goodies. Solved this without coding!

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.