如何通过Composer日志管理技巧排查运行日志问题?
- 内容介绍
- 文章标签
- 相关推荐
本文共计854个文字,预计阅读时间需要4分钟。
Composer 没有默认的日志文件,所有关键日志都将在终端实时输出,如果不重定向输出就会丢失。
composer install -vvv 输出什么才叫真·排错日志
只有 -vvv(三个 v)才能暴露依赖求解器(SAT solver)的完整决策链:从 Resolving dependencies through SAT 到 Rejecting monolog/monolog:1.5.0,再到精确的 because vendor/a requires b:^2.0 因果路径。这不是“多打几行”,而是唯一能看到“为什么某个版本被踢出”的通道。
-
-v:只显示下载进度和包名,对定位冲突无效 -
-vv:开始出现版本尝试记录,比如Checking platform requirements for package foo,但不展示回溯逻辑 -
-vvv:输出全部走stderr,含 HTTP 原始响应、插件异常堆栈、缓存命中详情、规则编号(如rule #127),必须重定向才能保存或grep
日志重定向必须写 2>&1,否则 grep 不到关键信息
Composer 把调试输出全扔进 stderr,直接 composer update -vvv | grep "because" 是空的——因为 grep 只读 stdout。
本文共计854个文字,预计阅读时间需要4分钟。
Composer 没有默认的日志文件,所有关键日志都将在终端实时输出,如果不重定向输出就会丢失。
composer install -vvv 输出什么才叫真·排错日志
只有 -vvv(三个 v)才能暴露依赖求解器(SAT solver)的完整决策链:从 Resolving dependencies through SAT 到 Rejecting monolog/monolog:1.5.0,再到精确的 because vendor/a requires b:^2.0 因果路径。这不是“多打几行”,而是唯一能看到“为什么某个版本被踢出”的通道。
-
-v:只显示下载进度和包名,对定位冲突无效 -
-vv:开始出现版本尝试记录,比如Checking platform requirements for package foo,但不展示回溯逻辑 -
-vvv:输出全部走stderr,含 HTTP 原始响应、插件异常堆栈、缓存命中详情、规则编号(如rule #127),必须重定向才能保存或grep
日志重定向必须写 2>&1,否则 grep 不到关键信息
Composer 把调试输出全扔进 stderr,直接 composer update -vvv | grep "because" 是空的——因为 grep 只读 stdout。

