New: Possibilité de logguer dans un fichier plutot que syslog

This commit is contained in:
Laurent Destailleur 2005-04-21 17:55:23 +00:00
parent 9788b81157
commit 1a4ee701a1
2 changed files with 43 additions and 32 deletions

View File

@ -52,7 +52,7 @@ class modSyslog extends DolibarrModules
$this->family = "technic"; $this->family = "technic";
$this->name = "Syslog"; $this->name = "Syslog";
$this->description = "Utilisation de syslog"; $this->description = "Activation des traces debug (syslog)";
$this->version = '2.0.0'; // 'experimental' or 'dolibarr' or version $this->version = '2.0.0'; // 'experimental' or 'dolibarr' or version
$this->const_name = "MAIN_MODULE_SYSLOG"; $this->const_name = "MAIN_MODULE_SYSLOG";
$this->const_config = MAIN_MODULE_SYSLOG; $this->const_config = MAIN_MODULE_SYSLOG;
@ -84,6 +84,7 @@ class modSyslog extends DolibarrModules
function init() function init()
{ {
$sql = array(); $sql = array();
return $this->_init($sql); return $this->_init($sql);
} }

View File

@ -80,41 +80,51 @@ function check_mail ($mail)
/** /**
\brief Envoi des messages dolibarr dans syslog. \brief Envoi des messages dolibarr dans syslog ou dans un fichier
\param message message a envoyer a syslog Pour syslog: facility défini par MAIN_SYSLOG_FACILITY
\param level Niveau de l'erreur Pour fichier: fichier défini par MAIN_SYSLOG_FILE
\remarks Cette fonction ne marchera qui si le module est activé \param message message a envoyer a syslog
Le message est envoyé dans syslog dans la catégorie LOG_USER. \param level Niveau de l'erreur
\remarks Cette fonction a un effet que si le module syslog est activé
*/ */
function dolibarr_syslog($message, $level=LOG_ERR) function dolibarr_syslog($message, $level=LOG_ERR)
{ {
if (defined("MAIN_MODULE_SYSLOG") && MAIN_MODULE_SYSLOG) if (defined("MAIN_MODULE_SYSLOG") && MAIN_MODULE_SYSLOG)
{ {
// Warning, les fonctions syslog sont buggués sous Windows et génèrent des if (defined("MAIN_SYSLOG_FILE") && MAIN_SYSLOG_FILE)
// fautes de protection mémoire. Pour résoudre, désactiver MAIN_DEBUG sous Windows. {
define_syslog_variables(); $file=fopen(MAIN_SYSLOG_FILE,"a+");
fwrite($file,time()." ".$level." ".$message."\n");
fclose($file);
}
else
{
// Warning, les fonctions syslog sont buggués sous Windows et génèrent des
// fautes de protection mémoire. Pour résoudre, désactiver MAIN_DEBUG sous Windows.
define_syslog_variables();
if (defined("MAIN_SYSLOG_FACILITY") && MAIN_SYSLOG_FACILITY) if (defined("MAIN_SYSLOG_FACILITY") && MAIN_SYSLOG_FACILITY)
{ {
$facility = MAIN_SYSLOG_FACILITY; $facility = MAIN_SYSLOG_FACILITY;
} }
else else
{ {
$facility = LOG_USER; $facility = LOG_USER;
} }
openlog("dolibarr", LOG_PID | LOG_PERROR, $facility); openlog("dolibarr", LOG_PID | LOG_PERROR, $facility);
if (! $level) if (! $level)
{ {
syslog(LOG_ERR, $message); syslog(LOG_ERR, $message);
} }
else else
{ {
syslog($level, $message); syslog($level, $message);
} }
closelog(); closelog();
}
} }
} }