2012-10-09 42 views
0

我正在使用syslog()函数在我的一个应用程序中记录信息。 我使用c代码在Fedora 14 Linux中调用syslog()函数。具有优先级的系统日志消息

目前我的呼唤系统日志功能是这样的:

syslog(LOG_INFO,"MYLOG"); 

我越来越登录味精/var/log/messages文件如下

Oct 7 04:32:53 syslogname MYLOG 

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

PRI Oct 7 04:32:53 syslogname MYLOG 

我想PRI号码出现在记录消息的开头。我做了谷歌搜索,但没有得到正确的答案。请求您建议如何使用syslog()函数来做到这一点?

回答

0

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

您需要在syslog deamon中设置一个特殊的格式化程序,以便在那里记录严重性。 Rsyslog有这个模板。使用nxlog,您可以使用$ SyslogSeverity字段并将其前置到$ Message或$ raw_message。

+0

嗨,非常感谢您的投入。事实上,我发布这个查询之前看过你的文章,但无法实现这个!我有一些关于系统日志的基本问题,并要求你使用clariffy。 – sram

+0

我有一些关于系统日志的基本问题,并要求你clariffy。 1. syslog-ng是否支持PRIORITY日志记录?如果是的话该怎么做? 2.你提到过rsyslog支持这个,我使用FC14 linux并且已经有rsyslog守护进程。这是否支持这个?其他什么版本的rsyslog我必须尝试?我尝试使用syslog-ng模板,但无法获取日志消息中的PRI。我想使用syslog-ng或rsyslog而不是nxlog。请建议。 – sram