diff options
| author | Savetheinternet <savetheinternet@tinyboard.org> | 2011-11-18 23:39:13 +1100 |
|---|---|---|
| committer | Savetheinternet <savetheinternet@tinyboard.org> | 2011-11-18 23:39:13 +1100 |
| commit | 3e28328dc9b064efc8a03000c82b4e05ac4148eb (patch) | |
| tree | 5ceef08efa9c35bbbb50e6804a75301093bd64c1 /inc | |
| parent | a37a14a398261e80409ca4218e273fbff5170598 (diff) | |
syslog()
Diffstat (limited to 'inc')
| -rw-r--r-- | inc/config.php | 3 | ||||
| -rw-r--r-- | inc/display.php | 9 | ||||
| -rw-r--r-- | inc/functions.php | 22 |
3 files changed, 28 insertions, 6 deletions
diff --git a/inc/config.php b/inc/config.php index 98cf1f73..0de56b20 100644 --- a/inc/config.php +++ b/inc/config.php @@ -75,6 +75,9 @@ // This keeps the script from querying the database and causing strain when not needed. $config['has_installed'] = '.installed'; + // Use syslog() for logging all error messages and unauthorized login attempts. + $config['syslog'] = false; + /* * ==================== * Database settings diff --git a/inc/display.php b/inc/display.php index 655aaf22..93afd59d 100644 --- a/inc/display.php +++ b/inc/display.php @@ -61,10 +61,15 @@ 'bottom' => '<div class="boardlist bottom">' . $body . '</div>' ); } - - function error($message) { + + function error($message, $priority = true) { global $board, $mod, $config; + if($config['syslog'] && $priority !== false) { + // Use LOG_NOTICE instead of LOG_ERR or LOG_WARNING because most error message are not significant. + _syslog($priority !== true ? $priority : LOG_NOTICE, $message); + } + if(defined('STDIN')) { // Running from CLI die('Error: ' . $message . "\n"); diff --git a/inc/functions.php b/inc/functions.php index 602b48ab..f9b16c8a 100644 --- a/inc/functions.php +++ b/inc/functions.php @@ -124,14 +124,24 @@ _textdomain('tinyboard'); } + + if($config['syslog']) + openlog('tinyboard', LOG_ODELAY, LOG_SYSLOG); // open a connection to sysem logger + if($config['recaptcha']) require_once 'inc/contrib/recaptcha/recaptchalib.php'; if($config['cache']['enabled']) require_once 'inc/cache.php'; } - function basic_error_function_because_the_other_isnt_loaded_yet($message) { - if(function_exists('sql_close')) sql_close(); + function basic_error_function_because_the_other_isnt_loaded_yet($message, $priority = true) { + global $config; + + if($config['syslog'] && $priority !== false) { + // Use LOG_NOTICE instead of LOG_ERR or LOG_WARNING because most error message are not significant. + _syslog($priority !== true ? $priority : LOG_NOTICE, $message); + } + // Yes, this is horrible. die('<!DOCTYPE html><html><head><title>Error</title>' . '<style type="text/css">' . @@ -147,14 +157,18 @@ if($error = error_get_last()) { if($error['type'] == E_ERROR) { if(function_exists('error')) { - error('Caught fatal error: ' . $error['message'] . ' in <strong>' . $error['file'] . '</strong> on line ' . $error['line']); + error('Caught fatal error: ' . $error['message'] . ' in <strong>' . $error['file'] . '</strong> on line ' . $error['line'], LOG_ERR); } else { - basic_error_function_because_the_other_isnt_loaded_yet('Caught fatal error: ' . $error['message'] . ' in ' . $error['file'] . ' on line ' . $error['line']); + basic_error_function_because_the_other_isnt_loaded_yet('Caught fatal error: ' . $error['message'] . ' in ' . $error['file'] . ' on line ' . $error['line'], LOG_ERR); } } } } + function _syslog($priority, $message) { + syslog($priority, $message . ' - client: ' . $_SERVER['REMOTE_ADDR'] . ', request: "' . $_SERVER['REQUEST_METHOD'] . ' ' . $_SERVER['REQUEST_URI'] . '"'); + } + function loadThemeConfig($_theme) { global $config; |
