11

我有一个应用程序应该myapp将日志文件发送到. 是用 C++ 编写的。以下示例代码仅将日志发送到 /var/log/syslog。我的操作系统是 Linux - Ubuntu 12.04 - 具体来说。我还发现我的机器安装了 rsyslog 而不是 syslog。/var/log/myapp.logmyapp

#include <stdio.h>
#include <unistd.h>
#include <syslog.h>

int main(void) {
    openlog("myapp", LOG_PID|LOG_CONS, LOG_USER);
    syslog(LOG_INFO, "abc 10");
    closelog();
    return 0;
}
4

1 回答 1

10

根据 syslog(3) 手册页,openlog() 的第一个参数设置日志消息的前缀,而不是文件名。您可以使用 LOG_LOCAL0 之类的工具来标记您的输出,然后使用 /etc/syslog.conf 配置 syslogd以将这些日志发送到您想要的文件。

于 2012-04-29T22:43:57.757 回答