Vorrei anteporre il nome del vhost nel mio ErrorLog e quindi inserirlo in un programma che ho scritto.
È possibile scrivere il formato del registro degli errori personalizzato così com'è con il registro degli accessi?
Vorrei anteporre il nome del vhost nel mio ErrorLog e quindi inserirlo in un programma che ho scritto.
È possibile scrivere il formato del registro degli errori personalizzato così com'è con il registro degli accessi?
Risposte:
Per le tubazioni, consultare la direttiva ErrorLog e le voci del manuale ufficiale dei registri delle tubazioni che spiegano abbastanza bene.
Ottenere un formato del registro degli errori personalizzato è più difficile. È possibile personalizzare facilmente il registro di accesso con LogFormat
ma non è integrato nulla per modificare il formato del registro degli errori. Mi sono imbattuto in CGI :: Carp, che è un modulo Perl per l'output nel registro degli errori. Infine, c'è sempre la modifica diretta del codice sorgente di Apache a seconda di quanto desideri questa funzionalità.
In Apache 2.2 non è possibile modificare facilmente il formato di error_log - consultare http://httpd.apache.org/docs/2.2/logs.html#errorlog .
Apache 2.4 aggiunge questo supporto. Vedi http://httpd.apache.org/docs/2.4/logs.html#errorlog .
Con Apache 2.4 è possibile utilizzare la ErrorLogFormat
direttiva.
Sintassi: ErrorLogFormat [connection|request] format
Semplice esempio
ErrorLogFormat "[%t] [%l] [pid %P] %F: %E: [client %a] %M"
Esempio (formato predefinito per MPM threaded)
ErrorLogFormat "[%{u}t] [%-m:%l] [pid %P:tid %T] %7F: %E: [client\ %a] %M% ,\ referer\ %{Referer}i"
Esempio (simile al formato 2.2.x)
ErrorLogFormat "[%t] [%l] %7F: %E: [client\ %a] %M% ,\ referer\ %{Referer}i"
Esempio avanzato con ID registro richieste / connessioni
ErrorLogFormat "[%{uc}t] [%-m:%-l] [R:%L] [C:%{C}L] %7F: %E: %M"
ErrorLogFormat request "[%{uc}t] [R:%L] Request %k on C:%{c}L pid:%P tid:%T"
ErrorLogFormat request "[%{uc}t] [R:%L] UA:'%+{User-Agent}i'"
ErrorLogFormat request "[%{uc}t] [R:%L] Referer:'%+{Referer}i'"
ErrorLogFormat connection "[%{uc}t] [C:%{c}L] local\ %a remote\ %A"
Fonte: direttiva ErrorLogFormat
%a
dovrebbe apparire vuoto? Dovrebbe essere l'indirizzo IP del client. Ho pubblicato una domanda a riguardo.
Probabilmente stai cercando mod_log_debug .