3

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 ();
4

1 に答える 1

7

優先度レベルが を下回っているため、ログ優先度マスク setlogmask (LOG_UPTO (LOG_NOTICE));はログ メッセージを破棄します。LOG_INFOLOG_NOTICE

重要度の低い順に並べた優先度

  • LOG_EMERG
  • LOG_ALERT
  • LOG_CRIT
  • LOG_ERR
  • ログ_警告
  • LOG_NOTICE
  • LOG_INFO
  • ログ_デバッグ

優先度について

これは、メッセージの内容がいかに重要であるかを示しています。定義された優先度の値の例: debug、informational、warning、critical。完全なリストについては、syslog を参照してください。vsyslog。優先順位には定義された順序があるという事実を除いて、これらの優先順位のそれぞれの意味は、システム管理者によって完全に決定されます。

コードで setlogmask 関数の値を変更するか、syslog 関数の優先レベルを変更します。

于 2013-09-08T16:27:41.040 に答える