【问题标题】:rsyslogd issues , logged with openlog () but logs going to /var/log/messagesrsyslogd 问题,使用 openlog () 记录,但日志转到 /var/log/messages
【发布时间】:2013-07-05 19:14:24
【问题描述】:

我有一个c程序,代码是

 setlogmask (LOG_UPTO (LOG_NOTICE));
 openlog ("thelog", LOG_CONS | LOG_PID | LOG_NDELAY, LOG_LOCAL1);
 syslog (LOG_NOTICE, "thelog : started by User %d", getuid ());
 syslog (LOG_INFO, "thelog: an info is logging");
 closelog();

代码工作正常但问题是日志被记录到文件中 /var/log/messages ,我有 /etc/rsyslog.conf no 和 syslog.conf

我希望将日志记录到新文件 /var/log/thelog.log 文件中

如何解决这个问题。

【问题讨论】:

    标签: c gcc syslog libc rsyslog


    【解决方案1】:

    如果您希望将 LOCAL1 记录到单独的文件中,您可以

    1. 通过正确编辑其配置文件来告诉 syslog
    2. 通过发送kill -HUP 让 syslogd 重新加载其配置。

    配置

    为local1添加一个特定的行,比如这个

    local1.*                -/var/log/thelog.log
    

    之前

    *.*;mail.none;news.none    -/var/log/messages
    

    并从本地配置中删除 local1?.*

    local0.*              -/var/log/localmessages
    local2,local3.*       -/var/log/localmessages
    

    一旦配置文件准备好

    kill -HUP <pid-of-syslogd>
    

    【讨论】:

    • 这里local1的意思是?? openlog ("thelog", >>>>>> openlog ("local1",
    • 这些是来自 syslog 配置文件 /etc/rsyslog.conf 的实际行。打开文件,阅读它,你就会明白我的意思了。
    • 看来 kill -HUP 不再有效了。 man rsyslogd 报告说,从 v5 开始,需要“真正重启”(例如 /etc/rc.d/rsyslogd 重启)。
    • 这对我不起作用。我在 ..;mail... -/var/log/messages 行之前有一个 local1.* -/var/log/myfile.log,并重新启动了 rsyslog 服务无济于事。例如,我仍然看不到 /var/log/myfile.log 文件的大小增加。还有其他线索吗?
    【解决方案2】:

    你需要这样写 -

    local1.*                        -/var/log/myfile.log
    *.*;auth,authpriv.none              -/var/log/syslog
    

    重启syslogd服务
    sudo service rsyslog 重启

    【讨论】:

      猜你喜欢
      • 2019-01-15
      • 1970-01-01
      • 2015-02-09
      • 2017-04-29
      • 2015-12-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多