Код раз в день высылает на основную почту список PHP ошибок из watchdog:
/**
* Implements hook_cron().
*/
function modulename_cron() {
if (module_exists('dblog') && date('d') != date('d', variable_get('cron_last'))) {
$last_send = strtotime('-1 day');
$events = db_query("
SELECT wid, type, message, variables, timestamp
FROM {watchdog}
WHERE type = 'php' AND timestamp >= :last_send
ORDER BY wid
LIMIT 100
", array(':last_send' => $last_send));
if ($events->rowCount()) {
$items = array();
foreach ($events as $event) {
$item = ($event->variables == 'N;') ? $event->message : t($event->message, unserialize($event->variables));
$item = truncate_utf8(filter_xss($item, array()), 100, TRUE, TRUE);
$item = l($item, 'admin/reports/event/' . $event->wid, array('absolute' => TRUE));
$items[] = date('d.m.Y H:i:s', $event->timestamp) . ' ' . $item;
}
$site_mail = variable_get('site_mail', ini_get('sendmail_from'));
drupal_mail('system', 'mail', $site_mail, language_default(), array(
'context' => array(
'subject' => 'PHP errors ' . date('d.m.Y H:i', $last_send) . ' - ' . date('d.m.Y H:i'),
'message' => theme('item_list', array('items' => $items)),
)
));
}
}
}
Написанное актуально для
Drupal 7
Похожие записи
- Как сделать чтобы все письма отправлялись в html формате (7)
- Уведомление администратора о новых комментариях
- Уведомление администратора о новых комментариях (6)
- Восстанавливаем позицию текстового курсора при ajax обновлении формы
- Как добавить базовое поле сущности (сохраняем User Agent комментатора)
Комментарии
Есть еще https://www.drupal.org/project/watchdog_notifier
Замечу, что запрос берет ошибки с последнего запуска cron "вчера" до первого запуска сегодня.
Т.е. если cron работает чаще , чем раз в сутки, то ошибки мы будем получать не все...
точно, исправил.
А теперь похоже, что он будет слать некоторые ошибки дважды)
Пусть крон запускается в 23:59. Мы получим ошибки за двое суток без одной минуты. Завтра в 23:59 - снова за двое суток :)
Все таки лучше использовать свою переменную, в которой хранить последнее время отправки уведомления
В чем преимущество использования
db_query
передdb_select
? Или просто привычка?Быстрее, проще.
Старая школа)
Добавить комментарий