【问题标题】:syslog not logging my program log entriessyslog 没有记录我的程序日志条目
【发布时间】:2013-09-12 04:57:35
【问题描述】:

我尝试从我的 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 ();

【问题讨论】:

    标签: c linux syslog rsyslog


    【解决方案1】:

    你的日志priority masksetlogmask (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

    这说明了消息内容的重要性。定义的优先级值的示例有:调试、信息、警告、关键。有关完整列表,请参阅系统日志;系统日志。除了优先级有明确的顺序之外,每个优先级的含义完全由系统管理员决定。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-29
      • 1970-01-01
      • 2011-07-24
      • 1970-01-01
      • 2019-05-11
      • 1970-01-01
      • 2020-07-06
      • 2019-07-26
      相关资源
      最近更新 更多