除了 syslog 之外,Linux 服务/守护程序文件记录最佳实践是啥? [关闭]

Posted

技术标签:

【中文标题】除了 syslog 之外,Linux 服务/守护程序文件记录最佳实践是啥? [关闭]【英文标题】:What is Linux service/daemon file logging best practice apart from syslog? [closed]除了 syslog 之外,Linux 服务/守护程序文件记录最佳实践是什么? [关闭] 【发布时间】:2019-08-15 04:27:21 【问题描述】:

我觉得syslog确实是一个不错的服务选择。

除了 syslog,还有其他的文件记录最佳实践吗?

将文件直接写入/tmp/var/log 合适吗?

【问题讨论】:

很多服务直接写日志文件。几乎所有这些都允许您使用命令行参数更改日志路径。您编写服务所用的语言与此无关。 【参考方案1】:

阅读logging best practice。有可能引起过于固执的答案的问题将被关闭。

将文件直接写入/tmp/var/log 可用合适吗?

/tmp 的一组通用权限:

drwxrwxrwt  root root  /tmp

所以,可用,是的,但适当的,不,不适用于日志。 /tmp 经常在重启时被清除。

/var/log 的一组通用权限:

drwxr-xr-x. root root   /var/log

因此,通常只有root 进程可以在那里创建文件。其他进程需要提前安装一个日志文件和logrotated - 或者有一个具有允许进程所有者在其中创建文件的权限的子目录。

如果您的系统使用journald,则使用它可能更合适,而不是像Linux Logging with Systemd 中所述创建自己的日志文件。

编辑:由于最初的问题在编辑之前部分是关于编程语言的,我将在此处留下这个注释:

是否使用 syslog 与语言的选择无关。如果您有 syslog 服务,它可以被任何语言编写的程序使用。

【讨论】:

【参考方案2】:

我发现在/var/log中创建折叠后,比如/var/log/myprocess/。注意/var/log 属于root,我使用chown 所以/var/log/myprocess/ 属于我。

所以我的进程可以直接在/var/log/myprocess/中创建和写入文件,比如/var/log/myprocess/process-log-2019-08-15.log

【讨论】:

嗯,这就是我在回答中所写的,所以我希望不用太长时间就能找到答案:-) @TedLyngmo 你的回答很好,谢谢!

以上是关于除了 syslog 之外,Linux 服务/守护程序文件记录最佳实践是啥? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

linux日志守护进程 syslog

Linux命令

linux下syslog-ng日志集中管理服务部署记录

Unix/Linux 日志记录syslog

Tina_Linux_syslog_使用指南

python [Python中的虚拟守护进程]一个虚拟守护进程,除了睡眠之外什么都不做,对于测试systemd和其他服务管理器非常有用#python #daemon