Fix Login class logging per class setting, fix per class getter
Add a new helper function to get current class that called the debug function. Fix bug were log_per was not set correctly Change all get_class calls in debug to the new helper function
This commit is contained in:
@@ -120,11 +120,11 @@ class Login extends \CoreLibs\DB\IO
|
||||
*/
|
||||
public function __construct(array $db_config)
|
||||
{
|
||||
// log login data for this class only
|
||||
$this->log->setLogPer('class', true);
|
||||
|
||||
// create db connection and init base class
|
||||
parent::__construct($db_config);
|
||||
// log login data for this class only
|
||||
$this->log->setLogPer('class', true);
|
||||
// set db special errors
|
||||
if ($this->db_init_error === true) {
|
||||
echo 'Could not connect to DB<br>';
|
||||
// if I can't connect to the DB to auth exit hard. No access allowed
|
||||
|
||||
@@ -229,8 +229,8 @@ class Logging
|
||||
|
||||
$rpl_string = !$this->log_per_level ? '' : '_'.$level; // if request to write to one file
|
||||
$fn = str_replace('##LEVEL##', $rpl_string, $fn); // create output filename
|
||||
|
||||
$rpl_string = !$this->log_per_class ? '' : '_'.str_replace('\\', '-', get_class($this)); // set sub class settings
|
||||
// set per class, but don't use get_class as we will only get self
|
||||
$rpl_string = !$this->log_per_class ? '' : '_'.str_replace('\\', '-', \CoreLibs\Debug\Support::getCallerClass()); // set sub class settings
|
||||
$fn = str_replace('##CLASS##', $rpl_string, $fn); // create output filename
|
||||
|
||||
$rpl_string = !$this->log_per_page ? '' : '_'.\CoreLibs\Get\System::getPageName(1); // if request to write to one file
|
||||
@@ -252,6 +252,19 @@ class Logging
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Superseeded by \CoreLibs\Debug\Support::getCallerClass() calls
|
||||
*
|
||||
* @return string Class name where called
|
||||
* @deprecated Use \CoreLibs\Debug\Support::getCallerClass() insteader
|
||||
*/
|
||||
private function getCallerClass(): string
|
||||
{
|
||||
// get the last class entry and wrie that
|
||||
$backtrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS) ?? [['class' => get_class($this)]];
|
||||
return end($backtrace)['class'];
|
||||
}
|
||||
|
||||
// *** PUBLIC ***
|
||||
|
||||
/**
|
||||
@@ -384,7 +397,7 @@ class Logging
|
||||
if (!in_array($type, ['level', 'class', 'page', 'run'])) {
|
||||
return;
|
||||
}
|
||||
$this->{'log_per'.$type} = $set;
|
||||
$this->{'log_per_'.$type} = $set;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -397,7 +410,7 @@ class Logging
|
||||
if (!in_array($type, ['level', 'class', 'page', 'run'])) {
|
||||
return false;
|
||||
}
|
||||
return $this->{'log_per'.$type};
|
||||
return $this->{'log_per_'.$type};
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -418,8 +431,7 @@ class Logging
|
||||
$this->error_msg[$level] = '';
|
||||
}
|
||||
// get the last class entry and wrie that
|
||||
$backtrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS) ?? [['class' => get_class($this)]];
|
||||
$class = end($backtrace)['class'];
|
||||
$class = \CoreLibs\Debug\Support::getCallerClass();
|
||||
// get timestamp
|
||||
$timestamp = \CoreLibs\Debug\Support::printTime();
|
||||
// HTML string, create only if we have echo
|
||||
@@ -502,7 +514,7 @@ class Logging
|
||||
// create the output wrapper around, so we have a nice formated output per class
|
||||
if ($string_output) {
|
||||
$string_prefix = '<div style="text-align: left; padding: 5px; font-size: 10px; font-family: sans-serif; border-top: 1px solid black; border-bottom: 1px solid black; margin: 10px 0 10px 0; background-color: white; color: black;">'
|
||||
.'<div style="font-size: 12px;">{<span style="font-style: italic; color: #928100;">'.get_class($this).'</span>}</div>';
|
||||
.'<div style="font-size: 12px;">{<span style="font-style: italic; color: #928100;">'.\CoreLibs\Debug\Support::getCallerClass().'</span>}</div>';
|
||||
$string_output = $string_prefix.$string_output
|
||||
.'<div><span style="font-style: italic; color: #108db3;">Script Run Time:</span> '.$script_end.'</div>'
|
||||
.'</div>';
|
||||
|
||||
@@ -55,6 +55,19 @@ class Support
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the current class where this function is called
|
||||
* Is mostly used in debug log statements to get the class where the debug was called
|
||||
* gets top level class
|
||||
*
|
||||
* @return string Class name with namespace
|
||||
*/
|
||||
public static function getCallerClass(): string
|
||||
{
|
||||
$backtrace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS) ?? [['class' => get_called_class()]];
|
||||
return end($backtrace)['class'];
|
||||
}
|
||||
}
|
||||
|
||||
// __END__
|
||||
|
||||
@@ -16,15 +16,6 @@ if (defined('BASE')) {
|
||||
DEFINE('CURRENT_WORKING_DIR', str_replace('lib', '', __DIR__));
|
||||
}
|
||||
|
||||
// METHOD: MyErrorHandler
|
||||
// PARAMS: $type: the error code from PHP
|
||||
// $message: the error message from php
|
||||
// $file: in which file the error happend. this is the source file (eg include)
|
||||
// $line: in which line the error happened
|
||||
// $context: array with all the variable
|
||||
// RETURN: true, so cought errors do not get processed by the PHP error engine
|
||||
// DESC: will catch any error except E_ERROR and try to write them to the log file in log/php_error-<DAY>.llog
|
||||
// if this fails, it will print the data to the window via echo
|
||||
/**
|
||||
* will catch any error except E_ERROR and try to write them to the log file
|
||||
* in log/php_error-<DAY>.log
|
||||
|
||||
Reference in New Issue
Block a user