我有一个应用程序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; }
根据syslog(3)联机帮助页,openlog()的第一个参数为日志消息设置前缀,而不是文件名。 您可以使用像LOG_LOCAL0这样的工具来标记输出,然后使用/etc/syslog.conf配置syslogd ,将这些日志发送到您所需的文件。