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

    Cerințe pentru macrocomenzi de testare a caracteristicilor pentru glibc (consultați feature_test_macros(7)):

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 (https://www.gnu.org/licenses/gpl-3.0.html) 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.