我有一个应用程序myapp
,它应该只将日志文件 发送到/var/log/myapp.log
。 myapp
是用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;
}
答案 0 :(得分:5)
根据syslog(3)联机帮助页,openlog()的第一个参数设置日志消息的前缀,而不是文件名。 您可以使用LOG_LOCAL0等工具标记输出,然后configure syslogd using /etc/syslog.conf将这些日志发送到您想要的文件。