[英]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.