From: Simone Piccardi Date: Fri, 4 Oct 2002 17:35:32 +0000 (+0000) Subject: Sistemata setlogmask X-Git-Url: https://gapil.gnulinux.it/gitweb/?a=commitdiff_plain;h=535a5dfabb91231acc74e81c82425a6d47c355f9;p=gapil.git Sistemata setlogmask --- diff --git a/session.tex b/session.tex index b2115ac..35ed018 100644 --- a/session.tex +++ b/session.tex @@ -720,10 +720,15 @@ specificato da \code{argv[0]}); la stringa verr messaggio. Si tenga presente che il valore di \param{ident} che si passa alla funzione è un puntatore, se la stringa cui punta viene cambiata lo sarà pure nei successivi messaggi, e se viene cancellata i risultati potranno essere -impredicibili, per questo è sempre opportuno usare una stringa costante. Il -parametro \param{facility} permette invece di specificare l'omonimo indice per -la categoria del messaggio; i valori possibili sono riportati in -\tabref{tab:sess_syslog_facility}. +impredicibili, per questo è sempre opportuno usare una stringa costante. + +L'argomento \param{facility} permette invece di preimpostare per le successive +chiamate l'omonimo indice che classifica la categoria del messaggio. +L'argomento è interpretato come una maschera binaria, e pertanto è possibile +inviare i messaggi su più categorie alla volta; i valori delle costanti che +identificano ciascuna categoria sono riportati in +\tabref{tab:sess_syslog_facility}, il valore di \param{facility} deve essere +specificato con un OR aritmetico. \begin{table}[htb] \centering @@ -757,8 +762,8 @@ la categoria del messaggio; i valori possibili sono riportati in L'argomento \param{option} serve invece per controllare il comportamento della funzione \func{openlog} e delle modalità con cui le successive chiamate -scriveranno i messaggi, esso viene specificato come maschera binaria composta -con un OR aritmetico di una qualunque delle costanti riportate in +scriveranno i messaggi, anch'esso viene specificato come maschera binaria +composta con un OR aritmetico di una qualunque delle costanti riportate in \tabref{tab:sess_openlog_option}. \begin{table}[htb] @@ -802,9 +807,19 @@ differenza restituita da \code{strerror(errno)}. Gli argomenti seguenti i primi due devono essere forniti secondo quanto richiesto da \func{format}. -L'argomento \param{priority} permette invece di impostare l'importanza del -messaggio; il valore deve essere impostato i valori possibili sono riportati -in \secref{tab:sess_syslog_priority}. +L'argomento \param{priority} permette di impostare sia la \textit{facility} +che la \textit{priority} del messaggio. In realtà viene prevalentemente usato +per specificare solo quest'ultima in quanto la prima viene di norma +preimpostata con \func{openlog}. La priorità è indicata con un valore +numerico\footnote{le \acr{glibc}, seguendo POSIX.1-2001, prevedono otto + diverse priorità ordinate da 0 a 7, in ordine di importanza decrescente; + questo comporta che i tre bit meno significativi dell'argomento + \param{priority} sono occupati da questo valore, mentre i restanti bit più + significativi vengono usati per specificare la \textit{facility}.} +specificabile attraverso le costanti riportate in +\secref{tab:sess_syslog_priority}. Nel caso si voglia specificare anche la +\textit{facility} basta eseguire un OR aritmetico del valore della priorità +con la maschera binaria delle costanti di \tabref{tab:sess_syslog_facility}. \begin{table}[htb] \centering @@ -823,23 +838,30 @@ in \secref{tab:sess_syslog_priority}. \macro{LOG\_DEBUG} & Messaggio di debug.\\ \hline \end{tabular} -\caption{Valori possibili per l'argomento \param{priority} di \func{syslog}.} +\caption{Valori possibili per l'indice di importanza del messaggio da + specificare nell'argomento \param{priority} di \func{syslog}.} \label{tab:sess_syslog_priority} \end{table} -Dato che in molti programmi - -Il sistema del \textit{syslog} usa la priorità del messaggio per classificare -gli stessi, è inoltre possibile restringere l'emissione dei messaggi -attraverso l'uso della funzione \func{setlogmask}, il cui prototipo è: +Una ulteriore funzione, \func{setlogmask}, permette di filtrare +preliminarmente i messaggi in base alla loro priorità; il suo prototipo è: \begin{prototype}{syslog.h} -{int setlogmask(int mask)} + {int setlogmask(int mask)} Imposta la maschera dei log al valore specificato. \bodydesc{La funzione restituisce il precedente valore.} \end{prototype} +Le routine di gestione mantengono per ogni processo una maschera che determina +quale delle chiamate effettuate a \func{syslog} verrà effettivamente +registrata. La registrazione viene disabilitata per tutte quelle priorità che +non rientrano nella maschera; questa viene settata usando la macro +\code{LOG\_MASK(p)} dove \code{p} è una delle costanti di +\secref{tab:sess_syslog_priority}. É disponibile anche la macro +\code{LOG\_UPTO(p)} che permette di specificare automaticamente tutte le +priorità fino ad un certo valore. + \section{L'I/O su terminale}