|
|
@@ -15,26 +15,26 @@ class DebugLazyLogger {
|
|
|
]) . '.log';
|
|
|
}
|
|
|
|
|
|
- function addLog($mixedArg, $type, $msg) {
|
|
|
+ function _addLog($mixedArg, $type, $msg, $trace, $moreMsg) {
|
|
|
$microTime = date("Y-m-d H:i:s") . substr((string)microtime(), 1, 6);
|
|
|
- $this->_items[] = [ $microTime, $mixedArg, $type, $msg ];
|
|
|
+ $this->_items[] = [ $microTime, $mixedArg, $type, $msg, $trace, $moreMsg ];
|
|
|
}
|
|
|
|
|
|
function __destruct() {
|
|
|
$startSaveLog = date("Y-m-d H:i:s") . substr((string)microtime(), 1, 6);
|
|
|
$firstItem = reset($this->_items);
|
|
|
foreach ($this->_items as $logItem) { // $logItem: [ $mixedArg, $type, $msg, $logFileName ]
|
|
|
- list($microTime, $mixedArg, $type, $msg) = $logItem;
|
|
|
- self::saveLogItemToFile($microTime, $mixedArg, $type, $msg, $this->_logFileName);
|
|
|
+ list($microTime, $mixedArg, $type, $msg, $trace, $moreMsg) = $logItem;
|
|
|
+ self::saveLogItemToFile($this->_logFileName, $microTime, $type, $msg, $moreMsg, $trace);
|
|
|
}
|
|
|
$endSaveLog = date("Y-m-d H:i:s") . substr((string)microtime(), 1, 6);
|
|
|
- self::saveLogItemToFile($startSaveLog, $mixedArg = null, $type = 'string', $msg = "Start saving log", $this->_logFileName);
|
|
|
- self::saveLogItemToFile($endSaveLog, $mixedArg = null, $type = 'string', $msg = "End saving log", $this->_logFileName);
|
|
|
- self::saveLogItemToFile($endSaveLog, $mixedArg = [
|
|
|
+ self::saveLogItemToFile($this->_logFileName, $startSaveLog, $type = 'string', $msg = "Start saving log");
|
|
|
+ self::saveLogItemToFile($this->_logFileName, $endSaveLog, $type = 'string', $msg = "End saving log");
|
|
|
+ self::saveLogItemToFile($this->_logFileName, $endSaveLog, $type = 'array', $msg = "Summary", $moreMsg = implode("\n", [
|
|
|
"{$firstItem[0]} diff(-----) - first log entry",
|
|
|
"{$startSaveLog} diff(" . V::milisecondsStringDiff($startSaveLog, $firstItem[0]) . ") - start saving log to file",
|
|
|
"{$endSaveLog} diff(" . V::milisecondsStringDiff($endSaveLog, $startSaveLog) . ") - end saving log to file",
|
|
|
- ], $type = 'array', $msg = "Summary", $this->_logFileName);
|
|
|
+ ]));
|
|
|
}
|
|
|
|
|
|
static function getInstance() {
|
|
|
@@ -43,66 +43,68 @@ class DebugLazyLogger {
|
|
|
return $instance;
|
|
|
}
|
|
|
|
|
|
- static function log($mixedArg, $type, $msg) {
|
|
|
+ static function log($mixedArg, $type = '', $msg = '') {
|
|
|
$logger = self::getInstance();
|
|
|
- $logger->addLog($mixedArg, $type, $msg);
|
|
|
- }
|
|
|
+ $trace = '';
|
|
|
+ $moreMsg = '';
|
|
|
|
|
|
- static function saveLogItemToFile($microTime ,$mixedArg, $type, $msg, $logFileName) {
|
|
|
- $logInfo = [
|
|
|
- 'date' => $microTime,
|
|
|
- 'type' => $type,
|
|
|
- 'msg' => $msg,
|
|
|
- 'log' => '',
|
|
|
- 'trace' => '',
|
|
|
- ];
|
|
|
if ($mixedArg instanceof Exception) {
|
|
|
- $logInfo['type'] = 'Exception';
|
|
|
- if (!empty($logInfo['msg'])) $logInfo['msg'] .= ". ";
|
|
|
- $logInfo['msg'] .= $mixedArg->getMessage();
|
|
|
- $logInfo['log'] = [
|
|
|
+ $type = 'Exception';
|
|
|
+ if (!empty($msg)) $msg .= ". ";
|
|
|
+ $msg .= $mixedArg->getMessage();
|
|
|
+ $moreMsg = [
|
|
|
'code' => $mixedArg->getCode(),
|
|
|
'line' => $mixedArg->getLine(),
|
|
|
'file' => str_replace(APP_PATH_ROOT, 'SE', $mixedArg->getFile()),
|
|
|
];
|
|
|
- $logInfo['trace'] = $mixedArg->getTraceAsString();// getTrace
|
|
|
+ $trace = $mixedArg->getTraceAsString();// getTrace
|
|
|
} else if (is_string($mixedArg)) {
|
|
|
if ('sql' == $type) {
|
|
|
- if (!$logInfo['type']) $logInfo['type'] = 'sql';
|
|
|
- if (empty($logInfo['msg'])) $logInfo['msg'] = "sql";
|
|
|
- $logInfo['log'] = $mixedArg;
|
|
|
+ if (!$type) $type = 'sql';
|
|
|
+ if (empty($msg)) $msg = "sql";
|
|
|
+ $moreMsg = $mixedArg;
|
|
|
} else {
|
|
|
- if (empty($logInfo['type'])) $logInfo['type'] = 'string';
|
|
|
+ if (empty($type)) $type = 'string';
|
|
|
if (empty($msg)) {
|
|
|
- $logInfo['msg'] = $mixedArg;
|
|
|
- $logInfo['log'] = '';
|
|
|
+ $msg = $mixedArg;
|
|
|
+ $moreMsg = '';
|
|
|
} else {
|
|
|
- $logInfo['msg'] = $msg;
|
|
|
- $logInfo['log'] = $mixedArg;
|
|
|
+ $moreMsg = $mixedArg;
|
|
|
}
|
|
|
}
|
|
|
ob_start();
|
|
|
debug_print_backtrace();
|
|
|
- $logInfo['trace'] = ob_get_clean();
|
|
|
+ $trace = ob_get_clean();
|
|
|
} else if ('array' == $type || is_array($mixedArg)) {
|
|
|
$mixedArg = (array)$mixedArg;
|
|
|
- if (!$logInfo['type']) $logInfo['type'] = 'array';
|
|
|
- if (!empty($logInfo['msg']) && !empty($mixedArg['msg'])) $logInfo['msg'] .= ". {$mixedArg['msg']}";
|
|
|
- else if (empty($logInfo['msg']) && !empty($mixedArg['msg'])) $logInfo['msg'] = $mixedArg['msg'];
|
|
|
+ if (!$type) $type = 'array';
|
|
|
+ if (!empty($msg) && !empty($mixedArg['msg'])) $msg .= ". {$mixedArg['msg']}";
|
|
|
+ else if (empty($msg) && !empty($mixedArg['msg'])) $msg = $mixedArg['msg'];
|
|
|
if (!empty($mixedArg['msg'])) unset($mixedArg['msg']);
|
|
|
- $logInfo['log'] = $mixedArg;
|
|
|
+ $moreMsg = $mixedArg;
|
|
|
ob_start();
|
|
|
debug_print_backtrace();
|
|
|
- $logInfo['trace'] = ob_get_clean();
|
|
|
+ $trace = ob_get_clean();
|
|
|
}
|
|
|
- if (!empty($logInfo['trace']) && 'Exception' !== $logInfo['type']) {// remove #0 and #1 (DBG::log and DBG::_log)
|
|
|
- $pos = strpos($logInfo['trace'], "\n#2");
|
|
|
- // if (false !== $pos) $logInfo['trace'] = substr($logInfo['trace'], $pos + 1); // TODO
|
|
|
+ if (!empty($trace) && 'Exception' !== $type) {// remove #0 and #1 (DBG::log and DBG::_log)
|
|
|
+ $pos = strpos($trace, "\n#2");
|
|
|
+ // if (false !== $pos) $trace = substr($trace, $pos + 1); // TODO
|
|
|
}
|
|
|
- $logInfo['trace'] = str_replace(APP_PATH_ROOT, 'SE', $logInfo['trace']);
|
|
|
- $logInfo['trace'] .= (("\n" == substr($logInfo['trace'], -1)) ? '' : "\n") . "#URI: " . V::get('REQUEST_URI', '', $_SERVER);
|
|
|
- if (!$logInfo['type']) $logInfo['type'] = 'unknown';
|
|
|
+ $trace = str_replace(APP_PATH_ROOT, 'SE', $trace);
|
|
|
+ $trace .= (("\n" == substr($trace, -1)) ? '' : "\n") . "#URI: " . V::get('REQUEST_URI', '', $_SERVER);
|
|
|
+ if (!$type) $type = 'unknown';
|
|
|
|
|
|
+ $logger->_addLog($mixedArg, $type, $msg, $trace, $moreMsg);
|
|
|
+ }
|
|
|
+
|
|
|
+ static function saveLogItemToFile($logFileName, $microTime, $type, $msg, $moreMsg = '', $trace = '') {
|
|
|
+ $logInfo = [
|
|
|
+ 'date' => $microTime,
|
|
|
+ 'type' => $type,
|
|
|
+ 'msg' => $msg,
|
|
|
+ 'log' => $moreMsg,
|
|
|
+ 'trace' => $trace,
|
|
|
+ ];
|
|
|
if (!empty($logInfo['trace'])) {
|
|
|
$trace = array_map(function ($part) {
|
|
|
if ('URI: ' === substr($part, 0, strlen('URI: '))) return "#{$part}";
|