簡體   English   中英

如何在Xdebug處於活動狀態時防止PHP錯誤日志中的完整堆棧跟蹤而不禁用Xdebug?

[英]How to prevent full stack traces in PHP error log when Xdebug is active without disabling Xdebug?

到目前為止,我沒有找到任何方法來禁用PHP錯誤日志中的完整堆棧跟蹤而不禁用Xdebug本身。 (使用xdebug_disable(); )但我希望使用Xdebug充分發揮其潛力,只需使用更清晰,更少膨脹的錯誤日志。

它甚至可能不可能,但我想確保沒有其他可能性,比如將Xdebugs堆棧跟蹤重定向到其他文件(我也試過但沒有成功)或者我沒想過的東西。

在完成Xdebug文檔並嘗試所有格式化選項並嘗試重定向Xdebug日志之后,似乎沒有真正的解決方案,除了在開發期間不需要時禁用Xdebug。

由於我正在開發一個dockerized應用程序,我改變了Dockerfile以使用啟用或禁用Xdebug的ENV。

Dockerfile

FROM php:7.0.31-apache-stretch
RUN yes | pecl install xdebug \
    && echo "zend_extension=$(find /usr/local/lib/php/extensions/ -name xdebug.so)" > /usr/local/etc/php/conf.d/xdebug.ini
RUN echo 'xdebug.default_enable=${XDEBUG}' >> /usr/local/etc/php/conf.d/xdebug.ini \
    && echo 'xdebug.remote_enable=${XDEBUG}' >> /usr/local/etc/php/conf.d/xdebug.ini \
    && echo 'xdebug.remote_autostart=${XDEBUG}' >> /usr/local/etc/php/conf.d/xdebug.ini \
    && echo 'xdebug.remote_connect_back=0' >> /usr/local/etc/php/conf.d/xdebug.ini \
    && echo 'xdebug.remote_host=host.docker.internal' >> /usr/local/etc/php/conf.d/xdebug.ini

用上面的Dockerfile運行構建的容器

  • 通過使用--env XDEBUG=1或啟用Xdebug(在日志中啟用堆棧跟蹤)
  • 通過--env XDEBUG=0禁用Xdebug(日志中沒有堆棧跟蹤)

docker-compose.yml

version: '2.4'
services:
  php-container:
    build:
      context: . #Path to Dockerfile
    environment:
      XDEBUG: 0 #1 enables Xdebug
    volumes:
      - "./src:/var/www/html/"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM