我可以指示syslog,syslog_ng将进程的专用日志数据写入单独的日志文件

我是一名开发人员,正在执行一些日志logging。 我正在考虑使用syslog接口的原因有很多。 但是,我不明白是否可以configuration我的特定应用程序有自己的日志文件。

在我看来,你真的不能这样做。 这是更集中的日志logging。 所以像Apache这样的服务器写自己的logging器。

这是这种情况吗? 有什么select?

如果使用syslog,应用程序无法确定其日志消息会发生什么情况。 这个决定是由syslog守护进程的configuration决定的。

有几种方法可以使用syslog来控制系统上的日志目标:

您的应用程序可以设置为login特定设施。 有一些系统级的设施,如kerneldaemon ,以及8个保留供本地使用的设备: local0local7 。 您可以将其中的一个硬编码到您的应用程序中,也可以通过configuration选项进行select。

即使是最基本的系统日志守护进程也可以configuration为将不同的设施logging到不同的文件。

另一种select是,也可以configuration更多现代的syslog守护进程,如syslog-ng和rsyslog,以便根据消息中的标记扫描消息并logging到不同的目标。 许多应用程序在其系统日志消息的开始处放置一个标记(例如[foo]是很常见的。

请注意,基于消息标记的过滤通常会导致性能下降,例如:日志吞吐量低于仅在设施上过滤。 对于高容量的系统日志服务器,这可能成为一个瓶颈。

我使用syslog-ng,我相信它可以用来为程序创build单独的并行日志文件,但我认为这可能不是理想的,因为它需要修改每个程序的syslog-ngconfiguration文件。 检查您的本地手册页。 🙂