Hướng dẫn php error log location - vị trí nhật ký lỗi php

Đây là chức năng nhật ký của tôi:

Nội dung chính

  • Lỗi PHP được ghi lại ở đâu?
  • Lỗi nội tuyến
  • Nhật ký tệp
  • Đăng nhập vào Laravel
  • Đăng nhập Symfony
  • Nhật ký PHP trông như thế nào?
  • Một mồi trên các cấp độ nhật ký
  • Nhật ký lỗi PHP đi đâu?
  • Làm cách nào để thay đổi nhật ký lỗi PHP INI?
  • Tôi có thể xóa nhật ký lỗi PHP không?
  • Làm cách nào để tạo nhật ký lỗi?

Bạn có thể chỉnh sửa các hàng nhật ký bằng cách chỉnh sửa $maxLogs=5, cũng là thứ tự để ghi nhật ký của bạn $logOrder='top'

$mod,'date'=> date('Y-m-d H:i:s')." Scripttime: ".$diff."ms",'log'=>$str];
    if($logOrder=='top'){
        array_unshift($log , $new);
        $log=array_slice($log,0,$maxLogs);
        }else{
        $log[]=$new;
        $log=array_slice($log,0-$maxLogs,$maxLogs);
    }
    
    
    $logs=json_encode($log,128);
    if(!file_put_contents($filename,$logs) ){echo ("Can’t open to write '$filename' Check Permissions") ;return;}
    return $str;
}
?>

Đầu ra trông giống như:

[
    {
        "mod": "delete",
        "date": "2022-08-04 13:48:02 0.33ms",
        "log": "test 2"
    },
    {
        "mod": "start",
        "date": "2022-08-04 13:48:29 0ms",
        "log": "test"
    },
    {
        "mod": "delete",
        "date": "2022-08-04 13:48:29 0.27ms",
        "log": "test 2"
    },
    {
        "mod": "start",
        "date": "2022-08-04 13:48:34 0ms",
        "log": "test"
    },
    {
        "mod": "delete",
        "date": "2022-08-04 13:48:34 0.92ms",
        "log": "test 2"
    }
]

Lỗi PHP được ghi lại ở đâu?

Lỗi nội tuyến

Lỗi nội tuyến

Nhật ký tệp

Đăng nhập vào Laravel

; This directive controls whether or not and where PHP will output errors,  
; notices and warnings too. Error output is very useful during development, but  
; it could be very dangerous in production environments. Depending on the code  
; which is triggering the error, sensitive information could potentially leak  
; out of your application such as database usernames and passwords or worse.  
; For production environments, we recommend logging errors rather than  
; sending them to STDOUT.  
; Possible Values:  
; Off = Do not display any errors  
; stderr = Display errors to STDERR (affects only CGI/CLI binaries!)  
; On or stdout = Display errors to STDOUT  
; Default Value: On  
; Development Value: On  
; Production Value: Off  
; http://php.net/display-errors
display_errors = On

Nhật ký tệp

Đăng nhập vào Laravel

; Log errors to specified file. PHP's default behavior is to leave this value
; empty.
; http://php.net/error-log
; Example:
;error_log = php_errors.log
; Log errors to syslog (Event Log on Windows).
error_log = syslog

Đăng nhập Symfony

Đăng nhập vào Laravel

Đăng nhập Symfony

/*
|--------------------------------------------------------------------------
| Logging Configuration
|--------------------------------------------------------------------------
|
| Here you may configure the log settings for your application. Out of
| the box, Laravel uses the Monolog PHP logging library. This gives
| you a variety of powerful log handlers / formatters to utilize.
|
| Available Settings: "single", "daily", "syslog", "errorlog"
|
*/
'log' => env('APP_LOG', 'single'),

Nhật ký PHP trông như thế nào?

Đăng nhập Symfony

Nhật ký PHP trông như thế nào?

Một mồi trên các cấp độ nhật ký

$container->loadFromExtension('monolog', array(
    'handlers' => array(
        'file_log' => array(
            'type'  => 'stream',
            'path'  => '%kernel.logs_dir%/%kernel.environment%.log',
            'level' => 'debug',
        ),
        'syslog_handler' => array(
            'type'  => 'syslog',
            'level' => 'error',
        ),
    ),
));

Nhật ký PHP trông như thế nào?

Một mồi trên các cấp độ nhật ký

Dec 10 04:04:38 scotchbox apache2: PHP Parse error:  syntax error, unexpected end of file in /var/www/public/index2.php on line 4

Nhật ký lỗi PHP đi đâu?

Một mồi trên các cấp độ nhật ký

Nhật ký lỗi PHP đi đâu?

Làm cách nào để thay đổi nhật ký lỗi PHP INI?

// Report simple running errors
error_reporting(E_ERROR | E_WARNING | E_PARSE);

// Report all errors except E_NOTICE
error_reporting(E_ALL & ~E_NOTICE);

Phương pháp này chấp nhận một giá trị nguyên cho biết PHP nào lỗi hiển thị và những lỗi nào sẽ bỏ qua. Thông qua việc sử dụng các toán tử bitwise (| có nghĩa hoặc, và ý nghĩa và và ~ có nghĩa là không), chúng ta có thể xác định rõ ràng và dễ dàng xác định lỗi nào chúng ta muốn thấy.

Dưới đây là một vài trong số các mức nhật ký phổ biến nhất. Để biết thêm thông tin về các cấp độ nhật ký (có khá nhiều trong số đó), hãy xem tài liệu chính thức của PHP.

Mức độ lỗiSự mô tả
E_ERROR Lỗi thời gian chạy nghiêm trọng. Những điều này cho thấy các lỗi không thể được phục hồi, chẳng hạn như vấn đề phân bổ bộ nhớ. Thực hiện kịch bản bị dừng lại.
E_WARNINIG Cảnh báo thời gian chạy (lỗi không gây tử vong). Thực hiện tập lệnh không bị dừng lại.
E_PARSE Biên dịch lỗi phân tích cú pháp thời gian. Lỗi phân tích cú pháp chỉ nên được tạo bởi trình phân tích cú pháp.
E_NOTICE Thông báo thời gian chạy. Những điều này chỉ ra rằng tập lệnh gặp phải một cái gì đó có thể chỉ ra một lỗi, nhưng cũng có thể xảy ra trong quá trình chạy tập lệnh thông thường.

Nhật ký lỗi PHP đi đâu?

Vị trí của tệp nhật ký lỗi có thể được đặt thủ công trong PHP. Tệp INI. Trên máy chủ Windows, trong IIS, nó có thể là một cái gì đó giống như "'error_log = c: \ log_files \ php_errors.log'" Trong Linux, nó có thể là giá trị của "'/var/log/php_errors.On a Windows server, in IIS, it may be something like "'error_log = C:\log_files\php_errors.log'" in Linux it may be a value of "'/var/log/php_errors.On a Windows server, in IIS, it may be something like "'error_log = C:\log_files\php_errors. log'" in Linux it may be a value of "'/var/log/php_errors.

Làm cách nào để thay đổi nhật ký lỗi PHP INI?

Để kích hoạt ghi nhật ký lỗi cho trang web hoặc ứng dụng của bạn, hãy làm theo các bước sau:...

Xác định vị trí PHP.Tệp INI trên máy chủ của bạn ..

Tìm dòng chứa mục nhập error_Reporting ..

Đảm bảo không có dấu chấm phẩy (;) trước mục nhập ..

Đặt mục nhập Error_Reporting bằng với mức ghi nhật ký mong muốn (được bảo hiểm tiếp theo) ..

Tôi có thể xóa nhật ký lỗi PHP không?

Hoàn toàn an toàn khi chỉ xóa tệp php.log.Nó sẽ được tự động tạo vào lần tới khi cần thiết.log file. It will be auto-created the next time it is needed. log file. It will be auto-created the next time it is needed.

Làm cách nào để tạo nhật ký lỗi?

Có thể thêm lệnh ini_set (log log_errors, đúng) vào tập lệnh PHP để cho phép đăng nhập lỗi trong PHP.Có thể thêm lệnh ini_set ('error_log', $ log_file) vào tập lệnh PHP để đặt tệp ghi nhật ký lỗi.Có thể sử dụng chức năng ERROR_LOG ($ ERROR_MESSAGE) để đăng nhập thông báo lỗi vào tệp đã cho.. The ini_set('error_log', $log_file) command can be added to the php script to set the error logging file. Further error_log($error_message) function call can be used to log error message to the given file.. The ini_set('error_log', $log_file) command can be added to the php script to set the error logging file. Further error_log($error_message) function call can be used to log error message to the given file.