Index: modules/syslog/syslog.module =================================================================== RCS file: /cvs/drupal/drupal/modules/syslog/syslog.module,v retrieving revision 1.22 diff -u -p -r1.22 syslog.module --- modules/syslog/syslog.module 13 Apr 2009 08:49:01 -0000 1.22 +++ modules/syslog/syslog.module 18 Apr 2009 19:13:38 -0000 @@ -90,15 +90,31 @@ function syslog_theme() { function theme_syslog_format($entry) { global $base_url; - $message = $base_url; - $message .= '|' . $entry['timestamp']; - $message .= '|' . $entry['type']; - $message .= '|' . $entry['ip']; - $message .= '|' . $entry['request_uri']; - $message .= '|' . $entry['referer']; - $message .= '|' . $entry['user']->uid; - $message .= '|' . strip_tags($entry['link']); - $message .= '|' . strip_tags(is_null($entry['variables']) ? $entry['message'] : strtr($entry['message'], $entry['variables'])); + // Convert HTML link to "Text: URI" + if (!empty($entry['link'])) { + if (preg_match('#^]*href="([^"]+)"[^>]*>(.*)#isU', $entry['link'], $matches)) { + $entry['link'] = str_replace('"', '\'', decode_entities(strip_tags($matches[2]))) .': '. $matches[1]; + } + else { + $entry['link'] = ''; + } + } + + $message = array( + $base_url, + $entry['timestamp'], + $entry['type'], + $entry['ip'], + $entry['request_uri'], + $entry['referer'], + $entry['user']->uid, + $entry['link'], + ); + + // Double-quote, and separate fields with a single whitespace. + // The message doesn't need to quoting since it's the last field. + $message = '"' . implode('" "', $message) . '"'; + $message .= ' ' . decode_entities(strip_tags(is_null($entry['variables']) ? $entry['message'] : strtr($entry['message'], $entry['variables']))); return $message; }