Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

changer le format de error_log

1 réponse
Avatar
geononauxspams
Bonjour,

J'ai installé php5 comme cgi appelé par Apache. Les erreurs et alertes
php sont bien enregistrées dans un fichier log kivabien du
répertoire ../apache/logs, mais elles ne suivent pas le format
classique [date] [type] [client] description. Seule la description est
présente.

Où est que l'on peut configurer le format des messages d'erreurs de
php présents dans la log ?

Config :

Apache 1.3.27
Php 5.2.1
appel de php configuré dans un virtual host d'Apache via :
ErrorLog .../apache/logs/..._error_log
CustomLog .../local/apache/logs/..._access_log common
AddHandler php5-cgi .php
Action php5-cgi .../php.cgi

Merci et à +
--
P'tit Marcel
stats sur des forums modérés http://www.centrale-lyon.org/ng/

1 réponse

Avatar
P'tit Marcel
Où est que l'on peut configurer le format des messages d'erreurs de
php présents dans la log ?


Bon, je vais encore me répondre à moi-même, cela va finir par être une
habitude...

Il me semble que le comportement de php est décrit dans le source de
main.c (voir plus bas).

Autrement dit, le comportement de php varierait selon le paramètre
error_log du php.ini :
- si pas de paramètre error_log, alors message envoyé tout seul dans la
log Apache (et apparemment Apache n'ajoute pas de lui-même le timestamp)
- si error_log=file, alors un timestamp entre crochets est ajouté en
début de ligne


Je reprécise donc la question :
- comment faire pour qu'Apache ajoute un timestamp sur chaque erreur php
présente dans son fichier d'erreur ?
- sinon, la seule solution est-elle de gérer un fichier d'erreur
spécifique à php via la directive error_log ?



////////////////////
PHPAPI void php_log_err(char *log_message TSRMLS_DC)
{
FILE *log_file;
char error_time_str[128];
struct tm tmbuf;
time_t error_time;

/* Try to use the specified logging location. */
if (PG(error_log) != NULL) {
#ifdef HAVE_SYSLOG_H
if (!strcmp(PG(error_log), "syslog")) {
php_syslog(LOG_NOTICE, "%.500s", log_message);
return;
}
#endif
log_file = VCWD_FOPEN(PG(error_log), "ab");
if (log_file != NULL) {
time(&error_time);
strftime(error_time_str, sizeof(error_time_str), "%d-%b-%Y %H:%M:%S",
php_localtime_r(&error_time, &tmbuf));
fprintf(log_file, "[%s] ", error_time_str);
fprintf(log_file, "%s", log_message);
fprintf(log_file, "%s", PHP_EOL);
fclose(log_file);
return;
}
}

/* Otherwise fall back to the default logging location, if we have one */

if (sapi_module.log_message) {
sapi_module.log_message(log_message);
}
}
////////////////////





--
P'tit Marcel
pourquoi personne y répond à ma question :'(