到目前为止,我还没有找到任何方法在不禁用Xdebug本身的情况下禁用PHP错误日志中的完整堆栈跟踪。 (使用xdebug_disable();
)但我想充分利用Xdebug的潜力,同时使用一个更干净,更不膨胀的错误日志。
这甚至不可能,但是我想确保没有其他可能性,例如将Xdebugs堆栈跟踪重定向到其他文件(我也尝试过但没有成功)或我没有想到的东西。
答案 0 :(得分:0)
浏览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
或--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/"