Ubuntu 下如何查看 Golang 打包日志:终端、文件、-v 与 -x 用法梳理

何川
何川
发布时间:2026-08-22| 44人浏览过
原创

前言

在 Ubuntu 环境里编译 Go 项目时,很多问题并不复杂,真正耽误时间的往往是没有第一时间把日志看全。本文把终端实时输出、日志重定向、`-v` 与 `-x` 两种详细模式,以及 VS Code、GoLand 里的查看入口整理成一套判断路径,方便你按问题深度选择最合适的排查方式。

在 Ubuntu 环境里编译 Go 项目,很多问题其实都不会藏得太深,关键是先把日志看全、看对。无论你是想确认 go build 是否成功,还是要继续追查依赖、编译链路和具体报错位置,都可以从不同层级的日志输出入手。下面按“从最直接到最详细”的顺序整理几种常用方法,方便你根据场景快速切换。

终端里直接看实时编译日志

最常见、也最直接的办法,就是在终端中进入项目目录后直接执行编译命令。比如先进入项目路径:

cd ~/go/src/myproject

然后执行:

go build

如果只编译指定文件,也可以写成:

go build main.go

这时编译过程中的输出会直接显示在当前终端里,包括成功提示、警告和错误信息。对于日常开发来说,这通常就是第一步,因为它不需要额外配置,反馈也最快。

如果你只是想确认“这次打包有没有过”,或者先看一眼最明显的报错,这种方式已经足够。

日志太多时,先保存到文件再分析

当编译输出较多,或者你需要把日志留给后续排查时,更合适的做法是把标准输出和错误输出一起写入文件:

go build [目标文件] > build.log 2>&1

这条命令里有两个关键点:

  • >:把标准输出(stdout)写入 build.log;
  • 2>&1:把标准错误(stderr)也合并到同一个输出里,避免只保存了正常信息却漏掉真正的报错。

执行后,日志默认会保存在当前目录。查看时可以按自己的习惯选择工具:

cat build.log
less build.log
vim build.log

如果你希望把日志放到固定目录,也可以直接指定完整路径:

go build > ~/logs/golang_build.log 2>&1

这种方式适合两类场景:一类是日志内容太长,不适合在终端里回翻;另一类是需要把构建记录保留下来,便于重复比对或发给同事一起排查。

想看参与编译的包,用 -v 参数

如果终端里只有最终结果还不够,你想知道这次编译到底经过了哪些包,可以在 go build 后加上 -v:

Go 编译日志查看方式对比图,突出终端实时输出、保存到文件、-v 与 -x 的用途差异
Go 编译日志查看方式怎么选把常见日志查看方式按输出深度和适用场景放在一张图里,更容易判断该先用哪一种。
go build -v [目标文件]

例如:

go build -v main.go

-v 是 verbose 模式,会输出参与编译的包名称和对应过程。它不只是“让日志变多”,更重要的是能帮助你判断问题大概落在哪一层:

  • 如果某个包迟迟没有通过,可能说明依赖链上有问题;
  • 如果你在排查构建变慢,也可以借它快速看出哪些包被重新编译了;
  • 如果项目依赖较多,这个输出还能帮助你梳理实际参与构建的范围。

对于“构建没报明确错误,但过程不符合预期”的情况,-v 往往比默认输出更有参考价值。

想追到底层执行细节,用 -x 参数

再往下一层,如果你需要看到编译器和链接器到底执行了哪些命令,可以使用 -x 参数:

go build -x [目标文件]

例如:

go build -x main.go

这个输出会把每一步实际执行的命令打印出来,例如 # compile、# link 等阶段对应的底层调用。对一些表面上看不出来的问题,这类信息尤其有用,比如:

  • 你怀疑错误出在编译阶段还是链接阶段;
  • 你想确认 Go 工具链到底调用了哪些底层命令;
  • 你需要定位某一步失败的准确位置,而不仅仅是看最后一条报错。

如果说默认输出适合“先看结果”,-x 更适合“顺着过程往下追”。在复杂问题上,它通常比单纯重复执行 go build 更有效。

不想切终端,也可以直接看 IDE 日志面板

如果你平时主要在图形界面里开发,也可以直接使用编辑器或 IDE 的输出面板查看编译日志。

IDE 中查看 Go 编译日志的位置示意图,展示 VS Code 输出面板与 GoLand Build 面板的入口和适合人群
VS Code 和 GoLand 日志入口对图形界面更适合日常查看实时输出,但做重定向和深度追查时,终端命令仍然更灵活。

VS Code

在 VS Code 中,可以点击顶部菜单栏 终端 → 输出,再选择 Go 或 编译 频道查看实时日志。

GoLand

在 GoLand 中,底部工具栏里的 Build 标签就会显示编译日志,打开后可以直接查看构建过程和报错信息。

这类方式的优势是操作门槛低,尤其适合刚接触 Go 或者更习惯图形界面的用户。不过一旦需要做日志重定向、比对多次构建结果,终端命令仍然更灵活。

使用时的两个判断点

最后再补两个容易忽略、但很实用的判断点。

日志文件保存位置可以自定义

如果没有单独指定路径,日志文件默认保存在当前目录;如果你有固定的日志归档习惯,可以直接改成诸如 ~/logs/golang_build.log 这样的路径。

成功和失败的日志信息量可能差很多

编译成功时,日志有时只会留下很简短的信息,例如类似“0 errors”的结果;而编译失败时,通常会明确指出错误原因,例如语法错误、依赖缺失等。实际排查时,可以先看是否失败,再决定要不要继续加上 -v 或 -x 深挖。

如果只需要一个简单结论,直接看终端输出即可;如果要保留记录,用重定向;如果要看包级过程,用 -v;如果已经进入底层排错阶段,就直接上 -x。按这个顺序切换,通常能更快找到问题所在。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。