温馨提示×

centos为啥没有golang日志

小樊
44
2026-09-27 07:12:01
栏目: 编程语言

在 CentOS 上“没有 golang 日志”这个说法,通常有几种常见含义。下面分层说明,基本能覆盖 90% 的场景。


一、你说的“golang 日志”可能是哪一类?

1️⃣ Go 程序自己没产生日志

这是最常见的情况。

  • Go 标准库没有默认日志系统
  • 如果你写的是:
    fmt.Println("hello")
    
    那只输出到 stdout / stderr
  • 是否“有日志”取决于:
    • 你是否用了 log / logrus / zap
    • 是否配置了输出文件

✅ 解决方式:

import "log"

log.SetOutput(os.OpenFile("/var/log/app.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0644))
log.Println("start")

2️⃣ systemd 下运行 Go 程序,看不到日志

很多人在 CentOS 7/8 用 systemd 跑 Go:

[Service]
ExecStart=/opt/app/app

但日志没出现,是因为:

  • Go 输出在 stdout/stderr
  • systemd 接管了
  • 必须用:
journalctl -u yourapp.service

✅ 这才是“CentOS 的 golang 日志”


3️⃣ CentOS 本身不“自带”Go

CentOS 默认不安装 Go:

which go
# 没有

很多人以为:

“CentOS 应该有 golang 日志”

其实:

  • CentOS 不跑 Go 服务
  • 没有 Go runtime
  • 自然没有 Go 日志

4️⃣ 你装了 Go,但日志去了 /dev/null

常见于:

  • Docker
  • nohup
  • supervisor

例如:

nohup ./app > /dev/null 2>&1 &

日志直接被吞了。


二、CentOS 常见的“日志位置”

如果你是找 Go 程序的日志:

场景 日志位置
systemd journalctl -u xxx
手动运行 终端 / 你重定向的文件
Docker docker logs
Nginx + Go Nginx 日志
自己写文件 /var/log/xxx.log

三、快速自查清单 ✅

你可以自己确认:

# 1. Go 是否安装
go version

# 2. 程序是否运行
ps aux | grep app

# 3. 是否 systemd
systemctl status yourapp

# 4. 看日志
journalctl -u yourapp -f

四、如果你愿意,我可以更精准帮你

你可以告诉我:

  1. CentOS 版本(7 / 8 / Stream)
  2. Go 程序怎么运行的(systemd / docker / 手动)
  3. 你期望“日志”长什么样

我可以直接给你完整配置示例。

0 踩