查看日志以诊断管道问题
Azure DevOps Services | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018
管道日志提供了用于确定管道故障原因的强大工具。
典型的起点是查看已完成的生成或发布中的日志。 可导航到管道运行摘要并选择作业和任务来查看日志。 如果某个任务失败,请检查该任务的日志。
除了在管道生成摘要中查看日志之外,还可以下载包含其他诊断信息的完整日志,还可以配置更详细的日志来帮助进行故障排除。
配置详细日志
为了帮助进行故障排除,可以将日志配置为更详细。
若要为单个运行配置详细日志,可以通过选择“运行管道”并选择“启用系统诊断”运行来启动新生成。

若要为所有运行配置详细日志,可以添加一个命名
system.debug变量并将其值true设置为 。
若要为单个运行配置详细日志,可以通过选择队列生成和将变量
true的值system.debug设置为来启动新生成。若要为所有运行配置详细日志,请编辑生成,导航到 “变量 ”选项卡,然后添加一个名为
system.debug、将其值true设置为“允许”的变量,然后选择“ 在队列时间允许”。若要为 YAML 管道配置详细日志,
system.debug请在variables节中添加变量:variables: system.debug: true
查看和下载日志
若要查看每个步骤的各个日志,请导航到运行的生成结果,然后选择作业和步骤。

若要下载所有日志,请导航到运行生成结果,选择 ...,然后选择 “下载日志”。

若要下载所有日志,请导航到运行的生成结果,选择 “下载所有日志”作为 zip。
除了管道诊断日志之外,还可以使用以下专用日志类型,并可能包含有助于进行故障排除的信息。
辅助角色诊断日志
可以获取生成代理上工作进程生成的已完成生成诊断日志。 查找 worker 包含已完成生成日期和时间戳的日志文件。 例如,worker_20160623-192022-utc_6172.log。
代理诊断日志
代理诊断日志提供代理的配置方式以及运行时发生的情况的记录。 查找 agent 日志文件。 例如,agent_20160624-144630-utc.log。 有两种类型的代理日志文件:
运行
config.cmd时生成的日志文件。 此日志:包括顶部附近的此行:
Adding Command: configure显示所做的配置选项。
运行
run.cmd时生成的日志文件。 此日志:在进程终止之前无法打开。
尝试连接到Azure DevOps组织或Team Foundation Server。
显示运行每个作业的时间及其完成方式
这两个日志都显示了如何检测和设置代理功能。
其他日志
在诊断日志中,你将找到 environment.txt 和 capabilities.txt。
该文件 environment.txt 包含有关生成运行环境的各种信息。 这包括运行哪些任务、是否启用防火墙、PowerShell 版本信息和一些其他项等信息。 我们不断添加到此数据,使其更有用。
该文件 capabilities.txt 提供了一种干净的方式,用于查看在运行生成的生成计算机上安装的所有功能。
HTTP 跟踪日志
重要
HTTP 跟踪和跟踪文件可以包含密码和其他机密。 不要在公共网站上发布它们。
使用内置的 HTTP 跟踪
如果代理版本为 2.114.0 或更高版本,则可以跟踪 HTTP 流量标头并将其写入诊断日志。 在 VSTS_AGENT_HTTPTRACE 启动 agent.listener 之前设置环境变量。
Windows:
set VSTS_AGENT_HTTPTRACE=true
macOS/Linux:
export VSTS_AGENT_HTTPTRACE=true
使用完整的 HTTP 跟踪 - Windows
启动 Fiddler。
建议仅侦听代理流量。 文件 > 捕获流量 (F12)
启用对 HTTPS 流量进行解密。 工具 > Fiddler 选项 > HTTPS 选项卡。解密 HTTPS 流量
让代理知道使用代理:
set VSTS_HTTP_PROXY=http://127.0.0.1:8888以交互方式运行代理。 如果要作为服务运行,则可以在运行该服务的帐户的控制面板中设置为环境变量。
重新启动该代理。
使用完整的 HTTP 跟踪 - macOS 和 Linux
在 Windows) 上使用与 Fiddler 类似的查尔斯代理 (捕获代理的 HTTP 跟踪。
启动查尔斯代理。
Charles:代理代理>设置 > SSL 选项卡。启用。 添加 URL。
查尔斯:代理 > Mac OSX 代理。 建议禁用以仅查看代理流量。
export VSTS_HTTP_PROXY=http://127.0.0.1:8888以交互方式运行代理。 如果它作为服务运行,则可以在 .env 文件中设置。 请参阅 nix 服务
重新启动该代理。