Có thể làm cho tất cả các lỗi PHP được ghi vào MySQL thay vì tệp error_log chuẩn. Tôi đoán điều này sẽ là có thể nếu tôi đã viết xử lý lỗi của riêng tôi từ đầu nhưng tôi có rất nhiều mã di sản tại chỗ và lý tưởng tôi sẽ chỉ thực hiện 1 thay đổi toàn cầu và đó sẽ là nó. Điều này có thể được thực hiện?Xuất tất cả các lỗi PHP vào cơ sở dữ liệu không phải error_log
6
A
Trả lời
18
Tôi không nghĩ rằng nó có thể được thực hiện mà không xây dựng một xử lý lỗi riêng, nhưng về mặt kỹ thuật, đó là một sự thay đổi toàn cầu bạn đang tìm kiếm.
Modified ví dụ từ manual:
function myErrorHandler($errno, $errstr, $errfile, $errline)
{
// you'd have to import or set up the connection here
mysql_query("INSERT INTO error_log (number, string, file, line) ".
"VALUES .....");
/* Don't execute PHP internal error handler */
return true;
}
sau đó
// set to the user defined error handler
$old_error_handler = set_error_handler("myErrorHandler");
2
Dường như chức năng php set_error_handler
có thể làm những gì bạn đang tìm kiếm. Trong ví dụ đầu tiên, bạn có thể thêm một số chèn mysql để ghi các lỗi của mình vào cơ sở dữ liệu.
Tôi 99% dương tính, bạn có thể không chỉ cần đặt một cái gì đó trong php.ini và đã cho nó xảy ra. Điều đó được cho là viết một trình xử lý lỗi tùy chỉnh sẽ đưa bạn khoảng 5 phút. – Erik