diff options
author | Dries Buytaert <dries@buytaert.net> | 2008-12-28 20:41:19 +0000 |
---|---|---|
committer | Dries Buytaert <dries@buytaert.net> | 2008-12-28 20:41:19 +0000 |
commit | 5bbad8a4dc42ed751fc8f394cd2829718329c2be (patch) | |
tree | 3a84d001e5ad36457104321d451e29bc7038d7e8 | |
parent | 1d14b0f894b68c986f9380de398988502cc2002d (diff) | |
download | brdo-5bbad8a4dc42ed751fc8f394cd2829718329c2be.tar.gz brdo-5bbad8a4dc42ed751fc8f394cd2829718329c2be.tar.bz2 |
- Patch #223298 by Dave Reid: change {dblog}.type VARCHAR limit from 16 to 64.
-rw-r--r-- | includes/bootstrap.inc | 5 | ||||
-rw-r--r-- | modules/dblog/dblog.install | 11 | ||||
-rw-r--r-- | modules/dblog/dblog.module | 28 | ||||
-rw-r--r-- | modules/syslog/syslog.module | 7 | ||||
-rw-r--r-- | modules/system/system.api.php | 66 |
5 files changed, 68 insertions, 49 deletions
diff --git a/includes/bootstrap.inc b/includes/bootstrap.inc index 4af5bc7da..4d6c24e07 100644 --- a/includes/bootstrap.inc +++ b/includes/bootstrap.inc @@ -887,6 +887,7 @@ function request_uri() { * A link to associate with the message. * * @see watchdog_severity_levels() + * @see hook_watchdog() */ function watchdog($type, $message, $variables = array(), $severity = WATCHDOG_NOTICE, $link = NULL) { global $user, $base_root; @@ -899,7 +900,7 @@ function watchdog($type, $message, $variables = array(), $severity = WATCHDOG_NO $in_error_state = TRUE; // Prepare the fields to be logged - $log_message = array( + $log_entry = array( 'type' => $type, 'message' => $message, 'variables' => $variables, @@ -914,7 +915,7 @@ function watchdog($type, $message, $variables = array(), $severity = WATCHDOG_NO // Call the logging hooks to log/process the message foreach (module_implements('watchdog', TRUE) as $module) { - module_invoke($module, 'watchdog', $log_message); + module_invoke($module, 'watchdog', $log_entry); } // It is critical that the semaphore is only cleared here, in the parent diff --git a/modules/dblog/dblog.install b/modules/dblog/dblog.install index d696de068..a1dbbf344 100644 --- a/modules/dblog/dblog.install +++ b/modules/dblog/dblog.install @@ -37,7 +37,7 @@ function dblog_schema() { ), 'type' => array( 'type' => 'varchar', - 'length' => 16, + 'length' => 64, 'not null' => TRUE, 'default' => '', 'description' => 'Type of log message, for example "user" or "page not found."', @@ -121,3 +121,12 @@ function dblog_update_7002() { db_add_index($ret, 'watchdog', 'uid', array('uid')); return $ret; } + +/** + * Allow longer type values. + */ +function dblog_update_7003() { + $ret = array(); + db_change_field($ret, 'watchdog', 'type', 'type', array('type' => 'varchar', 'length' => 64, 'not null' => TRUE, 'default' => '')); + return $ret; +} diff --git a/modules/dblog/dblog.module b/modules/dblog/dblog.module index 5060b0f2b..e272c75bf 100644 --- a/modules/dblog/dblog.module +++ b/modules/dblog/dblog.module @@ -118,19 +118,24 @@ function _dblog_get_message_types() { return $types; } -function dblog_watchdog($log = array()) { +/** + * Implementation of hook_watchdog(). + * + * Note some values may be truncated for database column size restrictions. + */ +function dblog_watchdog(array $log_entry) { Database::getConnection('default')->insert('watchdog') ->fields(array( - 'uid' => $log['user']->uid, - 'type' => $log['type'], - 'message' => $log['message'], - 'variables' => serialize($log['variables']), - 'severity' => $log['severity'], - 'link' => $log['link'], - 'location' => $log['request_uri'], - 'referer' => $log['referer'], - 'hostname' => $log['ip'], - 'timestamp' => $log['timestamp'], + 'uid' => $log_entry['user']->uid, + 'type' => substr($log_entry['type'], 0, 64), + 'message' => $log_entry['message'], + 'variables' => serialize($log_entry['variables']), + 'severity' => $log_entry['severity'], + 'link' => substr($log_entry['link'], 0, 255), + 'location' => $log_entry['request_uri'], + 'referer' => $log_entry['referer'], + 'hostname' => substr($log_entry['ip'], 0, 128), + 'timestamp' => $log_entry['timestamp'], )) ->execute(); } @@ -148,4 +153,3 @@ function theme_dblog_filters($form) { $output .= '<div id="dblog-admin-buttons">' . drupal_render($form['buttons']) . '</div>'; return $output; } - diff --git a/modules/syslog/syslog.module b/modules/syslog/syslog.module index 44a08a4bb..5e30917f7 100644 --- a/modules/syslog/syslog.module +++ b/modules/syslog/syslog.module @@ -68,7 +68,10 @@ function syslog_facility_list() { return $facility_list; } -function syslog_watchdog($entry) { +/** + * Implementation of hook_watchdog(). + */ +function syslog_watchdog(array $log_entry) { static $log_init = FALSE; if (!$log_init) { @@ -76,7 +79,7 @@ function syslog_watchdog($entry) { openlog('drupal', LOG_NDELAY, variable_get('syslog_facility', DEFAULT_SYSLOG_FACILITY)); } - syslog($entry['severity'], theme('syslog_format', $entry)); + syslog($log_entry['severity'], theme('syslog_format', $log_entry)); } function syslog_theme() { diff --git a/modules/system/system.api.php b/modules/system/system.api.php index d2b280790..e2986a6d9 100644 --- a/modules/system/system.api.php +++ b/modules/system/system.api.php @@ -683,7 +683,7 @@ function hook_xmlrpc() { * SMS, Email, pager, syslog, ...etc. * * @param $log_entry - * The log_entry is an associative array containing the following keys: + * An associative array containing the following keys: * - type: The type of message for this entry. For contributed modules, this is * normally the module name. Do not use 'debug', use severity WATCHDOG_DEBUG instead. * - user: The user object for the user who was logged in when the event happened. @@ -706,8 +706,8 @@ function hook_xmlrpc() { * @return * None. */ -function hook_watchdog($log_msg) { - global $base_url; +function hook_watchdog(array $log_entry) { + global $base_url, $language; $severity_list = array( WATCHDOG_EMERG => t('Emergency'), @@ -720,38 +720,40 @@ function hook_watchdog($log_msg) { WATCHDOG_DEBUG => t('Debug'), ); - $to = "someone@example.com"; - $subject = t('[@site_name] @severity_desc: Alert from your web site', array( - '@site_name' => variable_get('site_name', 'Drupal'), - '@severity_desc' => $severity_list[$log['severity']])); - - $message = "\nSite: @base_url"; - $message .= "\nSeverity: (@severity) @severity_desc"; - $message .= "\nTimestamp: @timestamp"; - $message .= "\nType: @type"; - $message .= "\nIP Address: @ip"; - $message .= "\nRequest URI: @request_uri"; - $message .= "\nReferrer URI: @referer_uri"; - $message .= "\nUser: (@uid) @name"; - $message .= "\nLink: @link"; - $message .= "\nMessage: \n\n@message"; - - $message = t($message, array( + $to = 'someone@example.com'; + $params = array(); + $params['subject'] = t('[@site_name] @severity_desc: Alert from your web site', array( + '@site_name' => variable_get('site_name', 'Drupal'), + '@severity_desc' => $severity_list[$log_entry['severity']], + )); + + $params['message'] = "\nSite: @base_url"; + $params['message'] .= "\nSeverity: (@severity) @severity_desc"; + $params['message'] .= "\nTimestamp: @timestamp"; + $params['message'] .= "\nType: @type"; + $params['message'] .= "\nIP Address: @ip"; + $params['message'] .= "\nRequest URI: @request_uri"; + $params['message'] .= "\nReferrer URI: @referer_uri"; + $params['message'] .= "\nUser: (@uid) @name"; + $params['message'] .= "\nLink: @link"; + $params['message'] .= "\nMessage: \n\n@message"; + + $params['message'] = t($params['message'], array( '@base_url' => $base_url, - '@severity' => $log_msg['severity'], - '@severity_desc' => $severity_list[$log_msg['severity']], - '@timestamp' => format_date($log_msg['timestamp']), - '@type' => $log_msg['type'], - '@ip' => $log_msg['ip'], - '@request_uri' => $log_msg['request_uri'], - '@referer_uri' => $log_msg['referer'], - '@uid' => $log_msg['user']->uid, - '@name' => $log_msg['user']->name, - '@link' => strip_tags($log_msg['link']), - '@message' => strip_tags($log_msg['message']), + '@severity' => $log_entry['severity'], + '@severity_desc' => $severity_list[$log_entry['severity']], + '@timestamp' => format_date($log_entry['timestamp']), + '@type' => $log_entry['type'], + '@ip' => $log_entry['ip'], + '@request_uri' => $log_entry['request_uri'], + '@referer_uri' => $log_entry['referer'], + '@uid' => $log_entry['user']->uid, + '@name' => $log_entry['user']->name, + '@link' => strip_tags($log_entry['link']), + '@message' => strip_tags($log_entry['message']), )); - drupal_mail('emaillog', $to, $subject, $body, $from = NULL, $headers = array()); + drupal_mail('emaillog', 'entry', $to, $language, $params); } /** |