如何配置syslog以便应用程序日志转到特定文件

时间:2012-04-29 21:13:35

标签: c++ linux syslog rsyslog

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

#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;
}

1 个答案:

答案 0 :(得分:5)

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