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

use*_*165 1 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
Run Code Online (Sandbox Code Playgroud)

在/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
Run Code Online (Sandbox Code Playgroud)

我的代码:

#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 ();
Run Code Online (Sandbox Code Playgroud)

P̲̳*_*͓L̳ 5

您的日志优先级掩码 setlogmask (LOG_UPTO (LOG_NOTICE));丢弃日志消息,因为LOG_INFO优先级低于此值LOG_NOTICE.

优先级降低的重要性

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

关于优先事项

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

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