syslog没有记录我的程序日志条目

时间:2013-09-08 16:06:34

标签: c linux syslog rsyslog

我尝试从我的C程序中记录,但是我没有在/ var / log / messages中找到我的程序中的任何条目。最近还有其他条目。

我正在使用 Fedora 17:Linux appliance.localdomain 3.5.3-1.fc17.i686#1 SMP Wed Aug 29 19:25:38 UTC 2012 i686 i686 i386 GNU / Linux

我看到安装了这个日志包:rsyslog-5.8.10-2.fc17.i686

myprompt: rpm -ql rsyslog-5.8.10-2.fc17.i686 | grep conf$

/etc/rsyslog.conf

在/etc/rsyslog.conf中:

# Log anything (except mail) of level info or higher.
# Don't log private authentication messages!
*.info;mail.none;authpriv.none;cron.none                /var/log/messages

我的代码:

#include <syslog.h>
...
setlogmask (LOG_UPTO (LOG_NOTICE));
openlog ("m61", LOG_CONS | LOG_PID | LOG_NDELAY, LOG_USER);
syslog (LOG_INFO, "In m61_init");
closelog ();

1 个答案:

答案 0 :(得分:5)

您的日志priority mask setlogmask (LOG_UPTO (LOG_NOTICE));丢弃日志消息,因为LOG_INFO优先级低于LOG_NOTICE

Priorities按重要性降低的顺序

  • LOG_EMERG
  • LOG_ALERT
  • LOG_CRIT
  • LOG_ERR
  • LOG_WARNING
  • LOG_NOTICE
  • LOG_INFO
  • LOG_DEBUG

About prioritiy

  

这说明了消息内容的重要性。定义的优先级值的示例是:debug,informational,warning,critical。有关完整列表,请参阅syslog; vsyslog。除了优先级具有已定义的顺序之外,每个优先级的含义完全由系统管理员决定。

在您的代码中更改setlogmask函数中的值或syslog函数中的优先级。