C Syslog API - 如何覆盖 _PATH_LOG

标签 c linux syslog

我正在 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/

相关文章:

linux - 如何在 bash 中对齐文本?

c++ - GCC 可以从最终输出中消除什么样的死代码?

c - Accept() 传递 Accept 的参数 3 使指针指向整数而不进行强制转换

c++ - Linux 真的分配了它不应该在 C++ 代码中的内存

linux - Linux 上的 killproc 和 pidofproc

linux - 如何使用 rsyslog 仅发送特定文件到远程服务器

logging - Docker-如何使用syslog在主机上记录日志?

python - 在 Python 中读取和打印与 USB 相关的 var 日志消息

c - 如果我的 C 程序有很多变量,我该如何管理变量

c - 这两种类型的函数声明有什么区别?