2010-06-28 21 views
0

Quelle est la méthode standard pour générer des messages IETF-syslog dans le langage C? Il existe l'en-tête <syslog.h>. Mais il ne fournit aucune option pour utiliser le mécanisme STRUCTURED-DATA (rfc-5424).Interface standard pour le langage C permettant de générer des messages syslog

Bien sûr, les messages pourraient être construits à la main directement sur un socket. Mais il semble que cette façon n'est pas standard.

Existe-t-il un autre moyen standard?

Répondre

1

Hmmm ... that rfc est de moins de 2 ans. Je ne pense pas que ce soit une grande surprise de voir que les suspects ususal ne l'ont pas encore implémenté.

1

La manière standard de faire cela est d'avoir vos messages de journal d'application en utilisant les routines normales openlog(), syslog() et closelog() de <syslog.h>.

Cela enverra les messages au syslogd s'exécutant sur la machine locale. Si les messages doivent ensuite être transmis sur le réseau en utilisant le protocole syslog, syslogd lui-même prendra soin de cela. Par exemple, cela peut être fait en utilisant une cible comme @hostname dans le fichier syslogd.conf. En bref, votre application doit consigner les messages au syslogd et syslogd décide où les envoyer (y compris sur le réseau). Cela permet à l'administrateur local un contrôle maximal.