Ошибки разбора журналов в переполнении стека

Я работаю над регистрацией ошибок в php. Я создаю пользовательский обработчик ошибок, регистрирую ошибку и сохраняю ее в БД. Есть несколько типов ошибок, которые я не могу войти.

Мой код обработчика ошибок …

<?php/**
* Parameters:
*  $errno:   Error level
*  $errstr:  Error message
*  $errfile: File in which the error was raised
*  $errline: Line at which the error occurred
*/

function my_error_handler($errno, $errstr, $errfile, $errline)
{
switch ($errno) {
case E_USER_ERROR:
// Send an e-mail to the administrator
// error_log("Error: $errstr \n Fatal error on line $errline in file $errfile \n", DEST_EMAIL, ADMIN_EMAIL);
echo "Error: $errstr \n  on line $errline in file $errfile";

//stack trace
$host='mysql:host=localhost;dbname=logs';
$user='root';
$password='';
$con=new PDO($host,$user,$password);
$trace=json_encode(debug_backtrace());
$qry=$con->prepare("insert into error_log (error_type,error_message,error_file,error_line,stack_trace) values('".$errno."','".$errstr."','".$errfile."','".$errline."','".$trace."')");
$qry->execute();

// Write the error to our log file
//  error_log("Error: $errstr \n Fatal error on line $errline in file $errfile \n", DEST_LOGFILE, LOG_FILE);
echo "<br>";
break;

case E_USER_WARNING:
// Write the error to our log file
//error_log("Warning: $errstr \n in $errfile on line $errline \n", DEST_LOGFILE, LOG_FILE);
echo "$errstr \n in $errfile on line $errline \n";
//stack trace
$host='mysql:host=localhost;dbname=logs';
$user='root';
$password='';
$con=new PDO($host,$user,$password);
$trace=json_encode(debug_backtrace());
$qry=$con->prepare("insert into error_log (error_type,error_message,error_file,error_line,stack_trace) values('".$errno."','".$errstr."','".$errfile."','".$errline."','".$trace."')");
$qry->execute();

case E_USER_NOTICE:
// Write the error to our log file
//error_log("Notice: $errstr \n in $errfile on line $errline \n", DEST_LOGFILE, LOG_FILE);

echo "$errstr \n in $errfile on line $errline \n";
//stack trace
$host='mysql:host=localhost;dbname=logs';
$user='root';
$password='';
$con=new PDO($host,$user,$password);
$trace=json_encode(debug_backtrace());
$qry=$con->prepare("insert into error_log (error_type,error_message,error_file,error_line,stack_trace) values('".$errno."','".$errstr."','".$errfile."','".$errline."','".$trace."')");
$qry->execute();
echo "<br>";
break;

default:
// Write the error to our log file
//error_log("Unknown error [#$errno]: $errstr \n in $errfile on line $errline \n", DEST_LOGFILE, LOG_FILE);
break;
}

// Don't execute PHP's internal error handler
return TRUE;
}// Use set_error_handler() to tell PHP to use our method
$old_error_handler = set_error_handler("my_error_handler");

?>

Ошибки Я хочу Журнал:

trigger_error("Core Error",E_CORE_ERROR);
trigger_error("Core Warning",E_CORE_WARNING);
trigger_error("Compile Error",E_COMPILE_ERROR);
trigger_error("Compile Warning",E_COMPILE_WARNING);
trigger_error("Strict Error",E_STRICT);
trigger_error("Recoverable Error", E_RECOVERABLE_ERROR);
trigger_error("Depreciated Error",E_DEPRECATED);
trigger_error("parse error",E_PARSE);
trigger_error("Error",E_ERROR);

Я хочу регистрировать все вышеупомянутые ошибки, например, когда чего-то не хватает в коде, таком как точка с запятой и т. Д., Затем мы получили синтаксическую ошибку и т. Д., Поэтому я хочу регистрировать все эти ошибки ….
Я много искал, но не смог найти решение, которое наилучшим образом соответствует моим потребностям, и в большинстве мест он говорит, что эти ошибки не могут быть зарегистрированы с помощью специального обработчика ошибок, но я уверен, что эти ошибки могут быть зарегистрированы, потому что это также вошли, когда мы проверяем это php_error_log файл, поэтому я хочу, чтобы WAY зарегистрировал его, используя пользовательский обработчик ошибок …
Любая помощь будет оценена.

Пожалуйста, не комментируйте или не голосуйте против вопроса из-за кода, который я
вставьте сюда, этот код находится в стадии разработки, и я не сделал
очистить, обезопасить это, только пост в соответствии / связанных с проблемой.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]