From 7112bcd134fcbc1c6cef6618c801e6f879d5e920 Mon Sep 17 00:00:00 2001 From: Mario Date: Sun, 25 Oct 2020 07:27:07 +0000 Subject: bt_syslog() instead of syslog flag for btlogger --- include/text.php | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) (limited to 'include/text.php') diff --git a/include/text.php b/include/text.php index 237202283..a300ccf58 100644 --- a/include/text.php +++ b/include/text.php @@ -659,6 +659,26 @@ function hz_syslog($msg, $priority = LOG_INFO) { closelog(); } +/** + * @brief like hz_syslog() but with a function backtrace to pinpoint certain classes + * of problems which show up deep in the calling stack. + * + * @param string $msg Message to log + * @param int $priority - compatible with syslog + */ +function bt_syslog($msg, $priority = LOG_INFO) { + $stack = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS); + if($stack) { + for($x = 1; $x < count($stack); $x ++) { + $s = 'stack: ' . basename($stack[$x]['file']) . ':' . $stack[$x]['line'] . ':' . $stack[$x]['function'] . '()'; + openlog("bt-log", LOG_PID | LOG_PERROR, LOG_LOCAL0); + syslog($priority, $msg); + closelog(); + } + } +} + + /** * @brief Logging function for Hubzilla. @@ -723,7 +743,7 @@ function logid() { * @param int $level A log level * @param int $priority - compatible with syslog */ -function btlogger($msg, $level = LOGGER_NORMAL, $priority = LOG_INFO, $syslog = false) { +function btlogger($msg, $level = LOGGER_NORMAL, $priority = LOG_INFO) { if(! defined('BTLOGGER_DEBUG_FILE')) define('BTLOGGER_DEBUG_FILE','btlogger.out'); @@ -742,9 +762,6 @@ function btlogger($msg, $level = LOGGER_NORMAL, $priority = LOG_INFO, $syslog = for($x = 1; $x < count($stack); $x ++) { $s = 'stack: ' . basename($stack[$x]['file']) . ':' . $stack[$x]['line'] . ':' . $stack[$x]['function'] . '()'; logger($s,$level, $priority); - if($syslog) { - hz_syslog(print_r($s,true)); - } if(file_exists(BTLOGGER_DEBUG_FILE) && is_writable(BTLOGGER_DEBUG_FILE)) { @file_put_contents(BTLOGGER_DEBUG_FILE, $s . PHP_EOL, FILE_APPEND); } -- cgit v1.2.3