syslog bir iletiyi Syslog'a teslim eder. Bunu Unix alan soketi olan /dev/log'a yazarak yapar.
syslog iletiyi oluşum_öncelik ile belirtilen oluşum ve öncelikle teslim eder. Bir oluşum ve öncelikten bir oluşum/öncelik değeri LOG_MAKEPRI makrosu ile şöyle üretilir:
LOG_MAKEPRI(LOG_USER, LOG_WARNING)
Oluşum kodu için olası değerler (makrolar):
- LOG_USER
Bir kullanıcı süreci
- LOG_MAIL
Posta
- LOG_DAEMON
Bir sistem artalan süreci
- LOG_AUTH
Güvenlik (kimlik denetimi)
- LOG_SYSLOG
Syslog
- LOG_LPR
Merkezi yazıcı
- LOG_NEWS
Ağ haberleri (yani, Usenet)
- LOG_UUCP
UUCP
- LOG_CRON
Cron ve At
- LOG_AUTHPRIV
Özel güvenlik (kimlik denetimi)
- LOG_FTP
Ftp sunucu
- LOG_LOCAL0
- LOG_LOCAL1
- LOG_LOCAL2
- LOG_LOCAL3
- LOG_LOCAL4
- LOG_LOCAL5
- LOG_LOCAL6
- LOG_LOCAL7
Yerel olarak tanımlı
Oluşum kodu bunların dışında bir değerse sonuç tanımsızdır.
| Not |
---|
syslog başka bir oluşum kodunu daha tanır: bu çekirdektir. Ama onun oluşum kodunu bu işlevlerle belirtemezsiniz. Eğer denerseniz syslog öntanımlı oluşum isteği yapılmış gibi davranır. Fakat bunu hiçbir şekilde denememelisiniz, çünkü çekirdek GNU C kütüphanesini kullanan bir yazılım değildir. |
oluşum_öncelik olarak bir öncelik kodu da belrtebilirsiniz. Bu durumda,
syslog çağrısı Syslog bağlantısı açıldığında öntanımlı oluşum kurulmuş kabul eder. Bkz.
Syslog Örneği.
Öncelik kodu için olası değerler (makrolar):
- LOG_EMERG
İleti, sistem işe yaramaz diyor.
- LOG_ALERT
İleti hemen birşeyler yapılmasını istiyor.
- LOG_CRIT
İleti ölümcül bir durumu belirtiyor.
- LOG_ERR
İleti, bir hatanın açıklaması
- LOG_WARNING
İleti, bir uyarı.
- LOG_NOTICE
İleti, bir normal ama önamli bir olayı bildiriyor.
- LOG_INFO
İleti sadece bilgilendirme amaçlı.
- LOG_DEBUG
İleti sadece hata ayıklama ile ilgili.
Öncelik kodu bunların dışında bir değerse sonuç tanımsızdır.
Eğer süreç açık bir Syslog bağlantısına sahip değilse (yani openlog çağrısı yapılmamışsa), syslog işlevi openlog'un yaptığı gibi hemen bağlantıyı açar. Bağlantıyı açarken, aksi sadece bir openlog çağrısı ile belirtilebilecek bilgi için şu öntanımlıları kullanır: Öntanımlı kimliklendirme dizgesi yazılımın ismidir. Öntanımlı oluşum LOG_USER'dır. seçenek ile belirtilen bitlerin hepsi sıfırdır. syslog bağlantıyı açık bırakır.
Eğer dev/log soketi açık ve bağlı değilse, syslog, openlog işlevinin LOG_NDELAY seçeneğiyle yaptığı gibi onu açar ve bağlanır.
syslog iletiyi göndermeye çalışırkan başarısız olmazsa, /dev/log'u açık ve bağlı bırakır, aksi takdirde syslog onu kapatır (ileride bir örtük açılışın Syslog bağlantısını kullanışlı bir durumda açacağını umarak).
Örnek:
#include <syslog.h>
syslog (LOG_MAKEPRI(LOG_LOCAL1, LOG_ERROR),
"Unable to make network connection to %s. Error=%m", host);