查看日志以诊断管道问题

Azure DevOps Services | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018

管道日志提供了用于确定管道故障原因的强大工具。

典型的起点是查看已完成的生成或发布中的日志。 可导航到管道运行摘要并选择作业和任务来查看日志。 如果某个任务失败,请检查该任务的日志。

除了在管道生成摘要中查看日志之外,还可以下载包含其他诊断信息的完整日志,还可以配置更详细的日志来帮助进行故障排除。

配置详细日志

为了帮助进行故障排除,可以将日志配置为更详细。

  • 若要为单个运行配置详细日志,可以通过选择“运行管道”并选择“启用系统诊断”运行来启动新生成。

    Enable system diagnostics

  • 若要为所有运行配置详细日志,可以添加一个命名 system.debug 变量并将其值 true设置为 。

  • 若要为单个运行配置详细日志,可以通过选择队列生成和将变量true的值system.debug设置为来启动新生成。

  • 若要为所有运行配置详细日志,请编辑生成,导航到 “变量 ”选项卡,然后添加一个名为 system.debug、将其值 true设置为“允许”的变量,然后选择“ 在队列时间允许”。

  • 若要为 YAML 管道配置详细日志, system.debug 请在 variables 节中添加变量:

    variables:
      system.debug: true
    

查看和下载日志

若要查看每个步骤的各个日志,请导航到运行的生成结果,然后选择作业和步骤。

Task log

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

Download logs

若要下载所有日志,请导航到运行的生成结果,选择 “下载所有日志”作为 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.txtcapabilities.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

  1. 启动 Fiddler

  2. 建议仅侦听代理流量。 文件 > 捕获流量 (F12)

  3. 启用对 HTTPS 流量进行解密。 工具 > Fiddler 选项 > HTTPS 选项卡。解密 HTTPS 流量

  4. 让代理知道使用代理:

    set VSTS_HTTP_PROXY=http://127.0.0.1:8888
    
  5. 以交互方式运行代理。 如果要作为服务运行,则可以在运行该服务的帐户的控制面板中设置为环境变量。

  6. 重新启动该代理。

使用完整的 HTTP 跟踪 - macOS 和 Linux

在 Windows) 上使用与 Fiddler 类似的查尔斯代理 (捕获代理的 HTTP 跟踪。

  1. 启动查尔斯代理。

  2. Charles:代理代理>设置 > SSL 选项卡。启用。 添加 URL。

  3. 查尔斯:代理 > Mac OSX 代理。 建议禁用以仅查看代理流量。

    export VSTS_HTTP_PROXY=http://127.0.0.1:8888
    
  4. 以交互方式运行代理。 如果它作为服务运行,则可以在 .env 文件中设置。 请参阅 nix 服务

  5. 重新启动该代理。