table of contents
syslog(3) | Library Functions Manual | syslog(3) |
NUME¶
trimite mesaje către jurnalul de sistem
BIBLIOTECA¶
Biblioteca C standard (libc, -lc)
SINOPSIS¶
#include <syslog.h>
void openlog(const char *ident, int option, int facility); void syslog(int priority, const char *format, ...); void closelog(void);
void vsyslog(int priority, const char *format, va_list ap);
vsyslog():
Începând cu glibc 2.19:
_DEFAULT_SOURCE
glibc 2.19 și versiunile anterioare:
_BSD_SOURCE
DESCRIERE¶
openlog()¶
openlog() deschide o conexiune la jurnalul de sistem pentru un program.
Șirul indicat de ident este atașat fiecărui mesaj și este de obicei stabilit la numele programului. Dacă ident este NULL, se utilizează numele programului. (POSIX.1-2008 nu specifică comportamentul atunci când ident este NULL).
Argumentul option specifică fanioanele care controlează funcționarea openlog() și apelurile ulterioare la syslog(). Argumentul facility stabilește o valoare implicită care va fi utilizată în cazul în care nu este specificată niciuna în apelurile ulterioare la syslog(). Valorile care pot fi specificate pentru option și facility sunt descrise mai jos.
Utilizarea lui openlog() este opțională; acesta va fi apelat automat de syslog() dacă este necesar, caz în care ident va fi implicit NULL.
syslog() și vsyslog()¶
syslog() generează un mesaj de jurnal, care va fi distribuit de syslogd(8).
Argumentul priority este format prin asocierea OR logic a unei valori facility și a unei valori level (descrisă mai jos). În cazul în care nicio valoare facility nu este combinată prin OR logic în priority, se utilizează valoarea implicită stabilită de openlog() sau, dacă nu a existat niciun apel openlog() anterior, se utilizează valoarea implicită LOG_USER.
Argumentele rămase sunt un format, ca în printf(3), și orice argumente cerute de format, cu excepția faptului că secvența de două caractere %m va fi înlocuită de șirul de mesaje de eroare strerror(errno). Șirul de formate nu trebuie să includă un caracter de sfârșit de linie nouă.
Funcția vsyslog() îndeplinește aceeași sarcină ca și funcția syslog(), cu diferența că aceasta preia un set de argumente care au fost obținute utilizând macroinstrucțiunile de listă de argumente variabile stdarg(3).
closelog()¶
closelog() închide descriptorul de fișier utilizat pentru a scrie în jurnalul sistemului. Utilizarea closelog() este opțională.
Valori pentru option (opțiune)¶
Argumentul option pentru openlog() este o mască de biți construită prin asocierea pri OR logic a oricăreia dintre următoarele valori:
- LOG_CONS
- Scrie direct în consola sistemului dacă există o eroare la trimiterea către jurnalul de sistem.
- LOG_NDELAY
- Deschide conexiunea imediat (în mod normal, conexiunea este deschisă atunci când este înregistrat primul mesaj). Acest lucru poate fi util, de exemplu, în cazul în care un chroot(2) ulterior ar face ca numele de rută utilizat intern de facilitatea de jurnalizare să fie inaccesibil.
- LOG_NOWAIT
- Nu așteaptă procesele copil care ar fi putut fi create în timpul înregistrării mesajului; (biblioteca GNU C nu creează un proces copil, deci această opțiune nu are niciun efect în Linux).
- LOG_ODELAY
- Reciproca lui LOG_NDELAY; deschiderea conexiunii este amânată până la apelarea lui syslog(); (aceasta este valoarea implicită și nu este necesar să fie specificată).
- LOG_PERROR
- (Nu în POSIX.1-2001 sau POSIX.1-2008.) De asemenea, înregistrează mesajul la stderr.
- LOG_PID
- Include PID-ul apelantului cu fiecare mesaj.
Valori pentru facility (facilitate)¶
Argumentul facility este utilizat pentru a specifica ce tip de program înregistrează mesajul. Acest lucru permite fișierului de configurare să specifice că mesajele de la diferite facilități vor fi tratate diferit.
- LOG_AUTH
- mesaje de securitate/autorizare
- LOG_AUTHPRIV
- mesaje de securitate/autorizare (private)
- LOG_CRON
- demonul ceasului (cron și at)
- LOG_DAEMON
- demoni de sistem fără valoare de facilitate(facility) separată
- LOG_FTP
- demon FTP
- LOG_KERN
- mesaje ale nucleului (acestea nu pot fi generate de procesele utilizatorului)
- LOG_LOCAL0 până la LOG_LOCAL7
- rezervate pentru uz local
- LOG_LPR
- subsistem de imprimantă de linie
- LOG_MAIL
- subsistemul de poștă electronică
- LOG_NEWS
- subsistemul de știri USENET
- LOG_SYSLOG
- mesaje generate intern de syslogd(8)
- LOG_USER (implicit)
- mesaje generice la nivel de utilizator
- LOG_UUCP
- subsistemul UUCP
Valori pentru level (nivel)¶
Acesta determină importanța mesajului. Nivelurile sunt, în ordinea descrescătoare a importanței:
- LOG_EMERG
- sistemul este inutilizabil
- LOG_ALERT
- trebuie să se ia imediat măsuri
- LOG_CRIT
- condiții critice
- LOG_ERR
- condiții de eroare
- LOG_WARNING
- condiții de avertizare
- LOG_NOTICE
- condiție normală, dar semnificativă
- LOG_INFO
- mesaj informativ
- LOG_DEBUG
- mesaj de nivel de depanare
Funcția setlogmask(3) poate fi utilizată pentru a restricționa înregistrarea numai la nivelurile specificate.
ATRIBUTE¶
Pentru o explicație a termenilor folosiți în această secțiune, a se vedea attributes(7).
Interfață | Atribut | Valoare |
openlog(), closelog() | Siguranța firelor | MT-Safe |
syslog(), vsyslog() | Siguranța firelor | MT-Safe env locale |
STANDARDE¶
- syslog()
- openlog()
- closelog()
- POSIX.1-2008.
- vsyslog()
- Niciunul.
ISTORIC¶
- syslog()
- 4.2BSD, SUSv2, POSIX.1-2001.
- openlog()
- closelog()
- 4.3BSD, SUSv2, POSIX.1-2001.
- vsyslog()
- 4.3BSD-Reno.
POSIX.1-2001 specifică doar valorile LOG_USER și LOG_LOCAL* pentru facility. Cu toate acestea, cu excepția valorilor LOG_AUTHPRIV și LOG_FTP, celelalte valori facility apar în majoritatea sistemelor UNIX.
Valoarea LOG_PERROR pentru option nu este specificată de POSIX.1-2001 sau POSIX.1-2008, dar este disponibilă în majoritatea versiunilor de UNIX.
NOTE¶
Argumentul ident în apelul lui openlog() este probabil stocat ca atare. Astfel, dacă șirul la care indică este modificat, syslog() poate începe să antepună șirul modificat, iar dacă șirul la care indică încetează să mai existe, rezultatele sunt nedefinite. Cel mai portabil mod este să se utilizeze o constantă de șir de caractere.
Nu treceți niciodată un șir de caractere cu date furnizate de utilizator ca format, utilizați în schimb următorul format:
syslog(priority, "%s", string);
CONSULTAȚI ȘI¶
journalctl(1), logger(1), setlogmask(3), syslog.conf(5), syslogd(8)
TRADUCERE¶
Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu <remusgabriel.chelu@disroot.org>
Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE.
Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la translation-team-ro@lists.sourceforge.net.
2 mai 2024 | Pagini de manual de Linux 6.9.1 |