systemd 保存 golang 服务日志到指定文件

更新日期: 2021-04-08 阅读次数: 6609 字数: 180 分类: Linux

需求场景

我想将 golang 打印的日志保持到指定日志文件,方便需要的时候进行查看。例如:

log.Println("some log")

而默认用 systemd 管理该服务的时候,是看不到日志输出的。

systemd 应用日志配置

每次重启都重置日志文件为空,重新写入:

StandardOutput=file:/var/my.log
StandardError=file:/var/my.log

保留所有日志历史,每次都 append:

StandardOutput=append:/var/my.log
StandardError=append:/var/my_err.log

使新配置生效

即重新加载 Unit 定义文件

sudo systemctl daemon-reload

重启服务

systemctl restart my.service

输出文件在哪里

注意,log 输出的文件在 my_err.log 文件中。

参考

  • https://stackoverflow.com/questions/37585758/how-to-redirect-output-of-systemd-service-to-a-file
  • 利用 systemd 部署 golang 项目 https://learnku.com/articles/34025

tags: systemd

关于作者 🌱

我是来自山东烟台的一名开发者,有敢兴趣的话题,或者软件开发需求,欢迎加微信 zhongwei 聊聊, 查看更多联系方式