【问题标题】:syslog message having priority具有优先级的系统日志消息
【发布时间】:2012-09-29 18:24:16
【问题描述】:

我正在使用syslog() 函数在我的一个应用程序中记录信息。 我在 Fedora 14 Linux 中使用 c 代码调用 syslog() 函数。

目前当我调用 syslog 函数时:

syslog(LOG_INFO,"MYLOG");

我在/var/log/messages 文件中记录了如下消息

Oct  7 04:32:53 syslogname MYLOG

现在我想在syslog() 消息的开头记录自定义优先级值(比如 137)。例如:日志应该看起来像这样。

PRI Oct  7 04:32:53 syslogname MYLOG

我希望PRI 号码出现在记录消息的开头。我做了谷歌搜索,但没有得到正确的答案。请您就如何使用syslog() 功能提出建议?

【问题讨论】:

    标签: syslog


    【解决方案1】:

    /var/log/messages 文件由您的系统日志守护程序编写。传统上,PRI 值被从中剥离。请参阅this 问题和我的答案。

    您需要在您的系统日志守护程序中设置一个特殊的格式化程序,以便在那里记录严重性。 Rsyslog 有这方面的模板。使用 nxlog,您可以使用 $SyslogSeverity 字段并将其添加到 $Message 或 $raw_message。

    【讨论】:

    • 您好,非常感谢您的意见。事实上,我在发布此查询之前已经看过您的帖子,但无法实现!我有一些关于 syslog 的基本问题,请您澄清一下。
    • 我有一些关于 syslog 的基本问题,请您澄清一下。 1. syslog-ng 是否支持优先级日志记录?如果是的话怎么办? 2.你提到rsyslog支持这个,我使用FC14 linux并且已经有rsyslog守护进程。这支持吗?否则我必须尝试什么版本的 rsyslog?我尝试了使用 syslog-ng 的模板,但无法在记录的消息中获取 PRI。我想使用 syslog-ng 或 rsyslog 而不是 nxlog。请提出建议。
    【解决方案2】:

    您可以使用 rsyslog 以您需要的格式写入。您请求格式的模板应如下所示: %pri% %timereported% %syslogtag% %msg%

    有关可用参数,您可以查看http://www.rsyslog.com/doc/property_replacer.html

    【讨论】:

      猜你喜欢
      • 2015-06-16
      • 2010-09-28
      • 1970-01-01
      • 2015-02-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-28
      • 2018-12-20
      相关资源
      最近更新 更多