Hướng dẫn where do php error logs go? - các bản ghi lỗi php đi đâu?
Tôi có thể đảm bảo cho bạn, tôi không phải là người duy nhất bị thúc đẩy đến điên rồ ít nhất một lần trong một tìm kiếm bực bội cho một tệp nhật ký. Có vẻ như nó nên là điều dễ dàng nhất để tìm thấy trong toàn bộ hệ thống. Show Một hướng dẫn dứt khoát về nơi nhật ký lỗi PHP được lưu trữ sẽ là một công việc phức tạp. Hướng dẫn sử dụng PHP chính thức thậm chí không cố gắng giải quyết toàn bộ chủ đề, bởi vì có những phụ thuộc vào các hệ thống bên ngoài PHP, chẳng hạn như hệ điều hành (Linux so với Windows, phân phối Linux), bao gồm các cài đặt trong Windows và Linux ảnh hưởng đến tên và vị trí của nhật ký lỗi PHP. Cho đến khi ai đó dành thời gian để viết một hướng dẫn hoàn chỉnh, hệ thống, điều tốt nhất bạn sẽ nhận được là những hướng đi chung nơi bạn có thể hỏi. Mỗi nhà phát triển PHP đã phải chịu đựng nỗi đau đớn trong việc theo đuổi này, với một ngoại lệ. Nếu bạn làm việc ở một nơi và thông tin được cung cấp khi bạn cần lần đầu tiên, thì bạn có nhu cầu thông tin mãi mãi, nghĩa là cho đến khi bạn thấy mình trong một môi trường làm việc mới. Có những người may mắn như vậy. Nếu thông tin không được cung cấp cho bạn trên một đĩa bạc, có thể nói, bạn có một số việc săn lùng phải làm. Cuộc săn lùng không phải là lâu nhất bạn sẽ phải đối mặt trong sự nghiệp của mình, nhưng nó cũng không phải là đơn giản nhất. Rõ ràng từ nhiều câu trả lời đã được đăng, một nơi thông minh để bắt đầu là đầu ra của phpinfo (). Để xem nó, hãy tạo một tệp PHP chứa điều này:
Hoặc duyệt đến tệp đó hoặc chạy nó từ dòng lệnh. Nếu bạn làm cả hai, bạn có thể sẽ tìm thấy Error_log ở những nơi khác nhau, tùy thuộc vào dòng lệnh so với sử dụng máy chủ web của PHP. Đó là bởi vì trình thông dịch PHP chạy trên máy chủ web không phải là trình thông dịch PHP cùng chạy từ dòng lệnh, ngay cả khi dòng lệnh nằm trên cùng một máy chủ web. Các câu trả lời đã được đăng ở đây chủ yếu là đưa ra một giả định không rõ ràng rằng PHP đang chạy như một phần của máy chủ web. Mặc định cho error_log không phải là giá trị Dù giá trị là gì, nó đến từ các tệp php.ini được sử dụng để định cấu hình PHP. Có thể có nhiều tệp php.ini. Tìm đường của bạn trong số họ lúc đầu khó hiểu, nhưng bạn không cần phải đối phó với điều này để tìm nhật ký PHP của bạn. Nếu đầu ra từ phpinfo () hiển thị một đường dẫn đầy đủ đến một tệp, đó là nơi nhật ký. Bạn thật may mắn. Bí quyết thường không có đường dẫn đầy đủ được chỉ định trong phpinfo (). Khi không có đường dẫn đầy đủ, vị trí phụ thuộc vào:
Bảng gian lận này đã hữu ích trong một số tình huống, nhưng tôi rất tiếc phải thừa nhận nó gần như không phổ biến. Bạn có lời chia buồn của tôi. Lỗi PHP được ghi lại ở đâu?Vì vậy, khi chúng ta gặp lỗi trong mã của chúng ta, chính xác thì chúng ta có thể tìm thấy chúng ở đâu? Ở cấp độ cao, thực sự chỉ có ba nơi có thể tìm thấy lỗi PHP: nội tuyến với thực thi chương trình, trong nhật ký hệ thống hoặc trong các công cụ giám sát lỗi như Rollbar. Lỗi nội tuyếnTheo mặc định, bất cứ khi nào một lỗi hoặc ngoại lệ được ném, PHP sẽ gửi thông báo lỗi trực tiếp đến người dùng qua stdout. Trong môi trường dòng lệnh, điều này có nghĩa là các lỗi được hiển thị trong thiết bị đầu cuối. Trong môi trường web, các lỗi và ngoại lệ được hiển thị trực tiếp trong trình duyệt. Mặc dù hành vi này rất hữu ích cho việc gỡ lỗi các vấn đề trong môi trường phát triển, nhưng nó nên bị vô hiệu hóa trong môi trường sản xuất vì lý do bảo mật. Để thực hiện việc này, hãy mở tệp cấu hình PHP cho môi trường mà bạn đang làm việc trong một đường dẫn trông giống như /etc/php/:environment:/php.ini, và thay đổi chỉ thị display_errors thành tắt.
Nhật ký tệpMặc dù các lỗi kết xuất cho stdout là tuyệt vời để gỡ lỗi các vấn đề trong môi trường phát triển khi chúng xảy ra, nhưng nó không hữu ích trong môi trường sản xuất. Đây là nơi nhật ký lỗi xuất hiện. Theo mặc định, PHP không ghi lại bất kỳ lỗi nào, điều đó có nghĩa là giá trị này phải được đặt rõ ràng. Để làm như vậy, hãy mở ra cùng một tệp cấu hình PHP được tham chiếu ở trên trong trình soạn thảo yêu thích của bạn và tìm Chỉ thị ERROR_LOG.
Có hai giá trị có thể cho ERROR_LOG: Tệp nhật ký tùy chỉnh và Syslog. Nếu syslog được sử dụng, thì tất cả các lỗi PHP sẽ được gửi trực tiếp đến tệp nhật ký hệ thống mặc định, trong Linux, đây thường là/var/log/syslog. Phương pháp dễ quản lý hơn là sử dụng tệp nhật ký tùy chỉnh. Bằng cách này, bạn có thể cách ly nhật ký của ứng dụng PHP khỏi phần còn lại của nhật ký hệ thống, có thể giúp các vấn đề gỡ lỗi dễ dàng hơn đáng kể. Đăng nhập vào LaravelMặc dù logger hệ thống mặc định của PHP rất hữu ích cho các ứng dụng bespoke, nhưng điều quan trọng cần lưu ý là nhiều khung ứng dụng cung cấp các cơ chế ghi nhật ký tích hợp của riêng họ. Một ví dụ tuyệt vời về điều này là khung Laravel. Trong Laravel, phương thức ghi nhật ký có thể được thay đổi trong tùy chọn nhật ký của tệp cấu hình ứng dụng, được tìm thấy trong config/app.php.
Theo mặc định, Laravel duy trì một tệp nhật ký duy nhất tại Storage/log/laravel.log trong thư mục dự án, thay vì tùy chọn ERROR_LOG được xác định từ cấu hình PHP toàn cầu. Đăng nhập SymfonyBởi vì Laravel được xây dựng trên đỉnh của Symfony, chúng chia sẻ cùng một cơ chế khai thác cốt lõi, mặc dù cấu hình khác nhau giữa hai khung. Đăng nhập vào Symfony và Laravel đều được thực hiện bằng cách sử dụng Monolog, thư viện ghi nhật ký PHP của bên thứ ba có thể được sử dụng để tạo và lưu trữ nhật ký theo một số lượng lớn các cách. Theo mặc định, nhật ký symfony được lưu trữ trong var/log/dev.log và var/log/prod.log trong thư mục dự án, tùy thuộc vào môi trường, nhưng các mặc định này có thể được thay đổi trong tệp cấu hình gói Monolog được tìm thấy tại cấu hình/gói /monolog.php.
Nhật ký PHP trông như thế nào?Vì vậy, chính xác các bản ghi PHP trông như thế nào? Trong hầu hết các trường hợp, nhật ký PHP tuân theo định dạng khá dễ đoán:
Tóm lại, dòng nhật ký ở trên có thể được chia thành bốn phần: ngày, tên máy chủ, quy trình và thông báo lỗi. Bất cứ khi nào gặp lỗi hoặc một ngoại lệ chưa được đưa ra, thông báo lỗi được in cùng với ngày, tên máy chủ và siêu dữ liệu quy trình để giúp xác định chính xác những gì đã xảy ra, nơi nó xảy ra và khi nó xảy ra. Một mồi trên các cấp độ nhật kýĐiều quan trọng cần lưu ý là, trong PHP, có một số mức nhật ký có thể bị đè bẹp hoặc nâng cao. Mặc dù các mức nhật ký này được xác định bởi chính PHP, nhưng việc hiểu chúng là gì và có nghĩa là một bước quan trọng để có thể chẩn đoán các vấn đề khi chúng xảy ra. Khi Display_errors được đặt thành Bật, có thể hữu ích để ẩn và hiển thị các mức nhật ký cụ thể một cách rõ ràng để bạn có thể tập trung vào một nhiệm vụ tại một thời điểm, chẳng hạn như các lỗi nghiêm trọng hoặc làm sạch các cảnh báo. Điều này có thể được thực hiện bằng cách sử dụng phương pháp Error_Reporting tích hợp.
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.
Nhật ký PHP được giữ ở đâu?Nếu bạn có bản dựng apache và PHP từ nguồn, thì các nhật ký lỗi theo mặc định sẽ được tạo tại $ {apache cài đặt dir}/log/error_log, tức là, thường/usr/local/apache2/log/error_log.Khác, nếu bạn đã cài đặt nó từ kho lưu trữ, bạn sẽ tìm thấy nó tại/var/log/apache2/error_log./usr/local/apache2/logs/error_log . Else, if you have installed it from the repository, you will find it at /var/log/apache2/error_log .
Tôi có thể tìm nhật ký lỗi ở đâu?Truy cập nhật ký lỗi Windows thông qua lệnh Run khởi chạy hộp thoại Run bằng cách nhấn đồng thời phím Windows và phím R từ bàn phím của bạn;Trong Run Windows mới ra mắt, nhập EventVWR;Nhấn Enter để chạy lệnh;Và cửa sổ Trình xem sự kiện sẽ tự động bật lên ngay sau đó.via the Run command
Launch the Run dialog box by simultaneously pressing the Windows key and the R key from your keyboard; In the newly launched Run windows, type in eventvwr; Hit Enter to run the command; And the Event Viewer window should automatically pop up right after that.
Nhật ký lỗi PHP là gì?Hàm Php Error_Log () Hàm error_log () gửi thông báo lỗi đến nhật ký, đến tệp hoặc đến tài khoản thư.sends an error message to a log, to a file, or to a mail account.
Có an toàn để 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. |