centos

Golang日志在CentOS上如何查询

小樊
42
2025-10-28 09:08:08
栏目: 编程语言

在CentOS上查询Golang日志的常见方法

1. 根据日志输出目标选择查询方式

Golang应用的日志输出目标(控制台、文件、系统日志)决定了查询方法,需先确认应用的日志配置(如是否输出到文件、是否使用systemd服务)。

(1)直接查看终端输出(标准输出/标准错误)

若应用未配置日志文件,默认会将日志输出到终端(标准输出stdout或标准错误stderr)。若应用在前台运行(如通过./myapp启动),可直接看到日志;若应用在后台运行(如通过nohup ./myapp &),可通过以下命令查看:

# 查看后台进程的日志(需替换为实际进程ID)
tail -f nohup.out

或通过ps命令找到进程ID,再用tail -f /proc/<PID>/fd/1查看标准输出。

(2)查看日志文件(自定义路径)

若应用配置了日志文件(如使用log.SetOutput或第三方库写入文件),可通过以下命令查看:

# 查看日志文件末尾(默认显示最后10行)
tail /path/to/your/app.log

# 实时跟踪日志更新(新增内容会动态显示)
tail -f /path/to/your/app.log

# 查看完整日志文件(适合小文件)
cat /path/to/your/app.log

# 分页查看日志(适合大文件,按空格翻页)
less /path/to/your/app.log

例如,若日志路径为/var/log/myapp.log,则使用tail -f /var/log/myapp.log实时查看。

(3)通过journalctl查看系统日志(systemd服务)

若应用以systemd服务运行(如服务名为myapp.service),日志会被systemd捕获,可通过journalctl命令查询:

# 查看特定服务的所有日志
journalctl -u myapp.service

# 实时跟踪服务日志更新
journalctl -u myapp.service -f

# 查看服务本次启动后的日志
journalctl -u myapp.service -b

# 查看特定时间范围的日志(如2025-06-01至2025-06-02)
journalctl -u myapp.service --since "2025-06-01" --until "2025-06-02"

# 搜索包含关键字的日志(如"error")
journalctl -u myapp.service | grep "error"

注:需替换myapp.service为实际服务名(可通过systemctl list-units --type=service查看)。

2. 使用命令过滤与分析日志

无论日志存储在文件还是journal中,均可通过以下命令筛选关键信息:

# 过滤包含"error"关键字的日志行
grep "error" /path/to/your/app.log
journalctl -u myapp.service | grep "error"

# 排除包含"debug"关键字的日志行(显示其他内容)
grep -v "debug" /path/to/your/app.log

# 查看最近100条日志
tail -n 100 /path/to/your/app.log

3. 日志轮转与长期管理

为避免日志文件过大,建议配置日志轮转(如使用lumberjack库或logrotate工具):

注意事项

0
看了该问题的人还看了