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");
if (defined("MAIN_SYSLOG_FACILITY") && MAIN_SYSLOG_FACILITY) fclose($file);
{ }
$facility = MAIN_SYSLOG_FACILITY; else
} {
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.
$facility = LOG_USER; define_syslog_variables();
}
if (defined("MAIN_SYSLOG_FACILITY") && MAIN_SYSLOG_FACILITY)
openlog("dolibarr", LOG_PID | LOG_PERROR, $facility); {
$facility = MAIN_SYSLOG_FACILITY;
if (! $level) }
{ else
syslog(LOG_ERR, $message); {
} $facility = LOG_USER;
else }
{
syslog($level, $message); openlog("dolibarr", LOG_PID | LOG_PERROR, $facility);
}
if (! $level)
closelog(); {
syslog(LOG_ERR, $message);
}
else
{
syslog($level, $message);
}
closelog();
}
} }
} }