dimecres, 28 de novembre del 2007

Com deixar un log en el sistema desde PHP

L'actual model de programació, amb serveis distribuits i interactivitat AJAX, provoca que els programadors a cops perdem el fil del que està succeint en els nostres sistemes. El debug tradicional no funciona perquè l'script no s'està executant seguint un camí, ans que es criden serveis des del mateix servidor.

Una manera elegant de deixar constància del que està fent el nostre script és emprar el log del sistema amb la comanda syslog de PHP.

En primer lloc crearem un nou local de syslog que destinarem a les aplicacions PHP. Seguint les instruccions d'aquest enllaç a l'apartat Creant un nou local de syslog afegirem a /etc/syslog.conf

# 3 PHP
#
local3.* /var/log/crt.php.log


I llavors a tots els scripts que volguem que deixin anotacions farem:
define_syslog_variables();
openlog(__CLASS__ . "::". __FUNCTION__, LOG_PERROR , LOG_LOCAL3);
syslog(LOG_DEBUG, " línia:: " . __LINE__ . " --- test " . $test);
closelog();

sent $test la variable que volem controlar.

Trobarem a /var/log/crt.php.log les anotacions dels nostres scripts.

Més informació: syslog()