我正在尝试在linux / var / log目录下创建一个日志文件,但是被拒绝了。任何最佳实践,而无需更改目录的所有权?
f, _ := os.Create("/var/log/go_server.log")
defer f.Close()
log.SetOutput(f)
答案 0 :(得分:5)
您所拥有的是标准的UNIX权限问题。鉴于该目录的特殊性,您有三个选择:
另请注意,如果配置正确,systemd可以将stdout / err保存到文件中,然后可以使用journalctl进行浏览。事实上,让你的程序愚蠢地将diags打印到stdout / err并且不会分叉自己是最聪明的事情,现在systemd为你做了所有这些事情(这样,你可以专注于你的程序做什么而不是重新发明轮子wrt守护进程和日志记录)。
对于所有悲痛的系统来说,它实际上非常擅长这个用例。