我正在 Linux 上构建包含 syslog.h 的内容,但我想覆盖当前指向/dev/log 的 _PATH_LOG 的定义
由于 Systemd 施加的一些不合理的限制,我希望该程序的 syslog API 仅指向不同的套接字,并且永远不会发送到/dev/log。我怎样才能单独为这个构建覆盖这个定义?该定义嵌套在 syslog-path.h 中,该路径由 syslog.h 包含,因此我的程序间接包含定义此变量的 header 。
最佳答案
如果您包含 syslog.h
,则您正在使用计算机的系统记录器(例如 syslogd)。
根据设计,应用程序生成系统日志,系统日志服务器决定日志的去向。如果您想使用系统记录器并将应用程序的日志发送到自定义端点,则需要修改系统日志记录服务器的配置。您无法在应用程序内的代码中指定自定义端点。
如果您想将系统日志直接从您的应用发送到远程系统日志服务器(绕过系统记录器),您可以使用第三方系统日志客户端库来实现。
关于C Syslog API - 如何覆盖 _PATH_LOG,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59614223/