From d6d593d724cd8d510bd1f6b2fd3302873cde3bca Mon Sep 17 00:00:00 2001 From: Adam Magness Date: Mon, 29 Oct 2018 16:10:35 -0400 Subject: [PATCH] Create Logger class Create Core\Logger class and point old functions to the new ones. --- include/text.php | 102 +++---------------------------- src/Core/Logger.php | 142 ++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 150 insertions(+), 94 deletions(-) create mode 100644 src/Core/Logger.php diff --git a/include/text.php b/include/text.php index 2d497bd58b..d8546e2e82 100644 --- a/include/text.php +++ b/include/text.php @@ -23,6 +23,8 @@ use Friendica\Util\DateTimeFormat; use Friendica\Util\Map; use Friendica\Util\Proxy as ProxyUtils; +use Friendica\Core\Logger; + require_once "include/conversation.php"; /** @@ -380,9 +382,6 @@ function attribute_contains($attr, $s) { } -/* setup int->string log level map */ -$LOGGER_LEVELS = []; - /** * @brief Logs the given message at the given log level * @@ -398,57 +397,9 @@ $LOGGER_LEVELS = []; * @param string $msg * @param int $level */ -function logger($msg, $level = LOGGER_INFO) { - $a = get_app(); - global $LOGGER_LEVELS; - - $debugging = Config::get('system', 'debugging'); - $logfile = Config::get('system', 'logfile'); - $loglevel = intval(Config::get('system', 'loglevel')); - - if ( - !$debugging - || !$logfile - || $level > $loglevel - ) { - return; - } - - if (count($LOGGER_LEVELS) == 0) { - foreach (get_defined_constants() as $k => $v) { - if (substr($k, 0, 7) == "LOGGER_") { - $LOGGER_LEVELS[$v] = substr($k, 7, 7); - } - } - } - - $process_id = session_id(); - - if ($process_id == '') { - $process_id = get_app()->process_id; - } - - $callers = debug_backtrace(); - - if (count($callers) > 1) { - $function = $callers[1]['function']; - } else { - $function = ''; - } - - $logline = sprintf("%s@%s\t[%s]:%s:%s:%s\t%s\n", - DateTimeFormat::utcNow(DateTimeFormat::ATOM), - $process_id, - $LOGGER_LEVELS[$level], - basename($callers[0]['file']), - $callers[0]['line'], - $function, - $msg - ); - - $stamp1 = microtime(true); - @file_put_contents($logfile, $logline, FILE_APPEND); - $a->saveTimestamp($stamp1, "file"); +function logger($msg, $level = LOGGER_INFO) +{ + Logger::logger($msg, $level); } /** @@ -469,46 +420,9 @@ function logger($msg, $level = LOGGER_INFO) { * @param string $msg * @param int $level */ -function dlogger($msg, $level = LOGGER_INFO) { - $a = get_app(); - - $logfile = Config::get('system', 'dlogfile'); - if (!$logfile) { - return; - } - - $dlogip = Config::get('system', 'dlogip'); - if (!is_null($dlogip) && $_SERVER['REMOTE_ADDR'] != $dlogip) { - return; - } - - if (count($LOGGER_LEVELS) == 0) { - foreach (get_defined_constants() as $k => $v) { - if (substr($k, 0, 7) == "LOGGER_") { - $LOGGER_LEVELS[$v] = substr($k, 7, 7); - } - } - } - - $process_id = session_id(); - - if ($process_id == '') { - $process_id = $a->process_id; - } - - $callers = debug_backtrace(); - $logline = sprintf("%s@\t%s:\t%s:\t%s\t%s\t%s\n", - DateTimeFormat::utcNow(), - $process_id, - basename($callers[0]['file']), - $callers[0]['line'], - $callers[1]['function'], - $msg - ); - - $stamp1 = microtime(true); - @file_put_contents($logfile, $logline, FILE_APPEND); - $a->saveTimestamp($stamp1, "file"); +function dlogger($msg, $level = LOGGER_INFO) +{ + Logger::dlogger($msg, $level); } diff --git a/src/Core/Logger.php b/src/Core/Logger.php new file mode 100644 index 0000000000..0613438670 --- /dev/null +++ b/src/Core/Logger.php @@ -0,0 +1,142 @@ + $loglevel + ) { + return; + } + + if (count($LOGGER_LEVELS) == 0) { + foreach (get_defined_constants() as $k => $v) { + if (substr($k, 0, 7) == "LOGGER_") { + $LOGGER_LEVELS[$v] = substr($k, 7, 7); + } + } + } + + $process_id = session_id(); + + if ($process_id == '') { + $process_id = get_app()->process_id; + } + + $callers = debug_backtrace(); + + if (count($callers) > 1) { + $function = $callers[1]['function']; + } else { + $function = ''; + } + + $logline = sprintf("%s@%s\t[%s]:%s:%s:%s\t%s\n", + DateTimeFormat::utcNow(DateTimeFormat::ATOM), + $process_id, + $LOGGER_LEVELS[$level], + basename($callers[0]['file']), + $callers[0]['line'], + $function, + $msg + ); + + $stamp1 = microtime(true); + @file_put_contents($logfile, $logline, FILE_APPEND); + $a->saveTimestamp($stamp1, "file"); + } + + /** + * @brief An alternative logger for development. + * Works largely as logger() but allows developers + * to isolate particular elements they are targetting + * personally without background noise + * + * log levels: + * LOGGER_WARNING + * LOGGER_INFO (default) + * LOGGER_TRACE + * LOGGER_DEBUG + * LOGGER_DATA + * LOGGER_ALL + * + * @global array $LOGGER_LEVELS + * @param string $msg + * @param int $level + */ + public static function dlogger($msg, $level = LOGGER_INFO) + { + $a = get_app(); + + $logfile = Config::get('system', 'dlogfile'); + if (!$logfile) { + return; + } + + $dlogip = Config::get('system', 'dlogip'); + if (!is_null($dlogip) && $_SERVER['REMOTE_ADDR'] != $dlogip) { + return; + } + + if (count($LOGGER_LEVELS) == 0) { + foreach (get_defined_constants() as $k => $v) { + if (substr($k, 0, 7) == "LOGGER_") { + $LOGGER_LEVELS[$v] = substr($k, 7, 7); + } + } + } + + $process_id = session_id(); + + if ($process_id == '') { + $process_id = $a->process_id; + } + + $callers = debug_backtrace(); + $logline = sprintf("%s@\t%s:\t%s:\t%s\t%s\t%s\n", + DateTimeFormat::utcNow(), + $process_id, + basename($callers[0]['file']), + $callers[0]['line'], + $callers[1]['function'], + $msg + ); + + $stamp1 = microtime(true); + @file_put_contents($logfile, $logline, FILE_APPEND); + $a->saveTimestamp($stamp1, "file"); + } +} \ No newline at end of file