把控制台日志输出到文件

发布时间 2023-09-30 16:38:22作者: Lucky小黄人^_^

内容来自对 chatgpt 的咨询

概述

一般来说,我们服务在运行过程中会有2种日志,

  • 一类是在程序里用日志库管理的日志,这类日志会被收集到指定的日志文件里,想查看日志的话,直接去对应路径下查看就行;
  • 另一类是直接使用 print 语句打印在控制台的日志,这些日志没有使用日志库,所以不会被收集到日志文件,有时如果我们想要把这些日志也收集起来,方便排查问题,那该怎么办呢?

解决方案

针对第二种情况,可以使用 shell 重定向的功能,把控制台日志重定向到文件里,重定向符号是 > 或者 >>> 表示如果文件存在,创建新文件进行写入,>> 表示把日志追加到文件末尾。

go run main.go > console_log.txt # 如果文件存在,创建新文件进行写入
go run main.go >> console_log.txt # 如果文件存在,把日志追加到文件末尾。

特别提醒

使用 go run main.go > console_log.txt 不会影响到通过 log 库或其他专门的日志库生成的日志文件。这些库通常将日志信息写入到指定的日志文件或其他输出流,这不会被 shell 的输出重定向操作影响。原本应该存储到某特定日志文件的日志会照常被写入到那个特定的日志文件中。