Điểm:1

Làm cách nào để nhận được thông báo lỗi chưa được cắt ngắn từ dblog?

lá cờ ru

"Thông báo nhật ký gần đây" rất tiện dụng để theo dõi lỗi trên các trang web. Mặc dù điều này rất hiệu quả đối với các lỗi trong mã PHP, nhưng nó thường không hữu ích đối với các lỗi trong mã Twig. Ví dụ. Tôi có thông báo lỗi này trong nhật ký của mình:

Lỗi người dùng: "thuộc tính" là khóa mảng kết xuất không hợp lệ trong Drupal\Core\Render\Element::children() (Zeile 98 trong /web/core/lib/Drupal/Core/Render/Element.php)

#0 /web/core/includes/bootstrap.inc(346): _drupal_error_handler_real(256, '"thuộc tính" là...', '/var/www/vhosts...', 98) #1 [chức năng bên trong]: _drupal_error_handler(256, '"thuộc tính" là...', '/var/www/vhosts...', 98, Array)

(47 dòng nữa ở đây)

Strack này có 47 điểm, hầu hết là từ lõi Drupal. Lỗi rõ ràng là trong chủ đề tùy chỉnh của tôi.

#11 /web/core/lib/Drupal/Core/Theme/ThemeManager.php(384): twig_render_template('themes/custom/w...', Array)

Do dòng này, tôi nghi ngờ một trong các mẫu Twig tùy chỉnh của mình không chính xác, nhưng tôi không thể tìm ra mẫu nào do tên tệp bị cắt ngắn.

Làm cách nào tôi có thể nhận được thông báo lỗi đầy đủ của một dòng cụ thể trong theo dõi ngăn xếp? Nếu tôi biết tên đầy đủ của tệp được đề cập trong dòng #11, nó sẽ giúp tôi sửa lỗi rất nhiều.

Điểm:2
lá cờ cn

Bạn đang nhận được kết quả của tính năng truy ngược được tích hợp sẵn trong PHP. Drupal đang sử dụng debug_backtrace() để hiển thị và Ngoại lệ::getTraceAsString đã được thêm vào để đăng nhập Drupal 8.2.x. xem thay đổi bản ghi. Phương pháp thứ hai là một phương pháp truy ngược rất nhanh và hiệu quả, nó không hết bộ nhớ khi xử lý mã được lồng sâu vốn thường dành cho các mẫu kết xuất Drupal. Tuy nhiên, nó có thể không cung cấp tất cả thông tin bạn đang tìm kiếm.

Nếu bạn cần theo dõi ngăn xếp hoạt động đầy đủ, hãy sử dụng Xdebug để bắt ngoại lệ (không cần điểm dừng).

https://marketplace.visualstudio.com/items?itemName=xdebug.php-debug

xdebug

lá cờ ru
Nhưng Xdebug không thực sự hữu ích trong trường hợp như thế này. Đặt điểm dừng trên chức năng cốt lõi được gọi hàng triệu lần trong khi yêu cầu là không hợp lý.
lá cờ cn
@Hudri giả sử bạn có một IDE phù hợp không phải là vấn đề, ví dụ: https://www.jetbrains.com/help/phpstorm/debugging-with-php-Exception-breakpoints.html
4uk4 avatar
lá cờ cn
@Hudri, lỗi Cành có thể bắt được trong Symfony. Bạn có thể viết mã của riêng mình để định dạng đường lùi và ghi đè /core/lib/Drupal/Core/EventSubscriber/ExceptionLoggingSubscriber.php
lá cờ ru
Ồ, cảm ơn rất nhiều, tôi chưa biết Điểm dừng ngoại lệ trong PHPstorm, điều này sẽ giúp ích rất nhiều

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.