From 7bbbda2dcef7f8f704390fa8cadc81d7193a9643 Mon Sep 17 00:00:00 2001
From: Laurent Destailleur <eldy@destailleur.fr>
Date: Thu, 28 Feb 2013 16:19:16 +0100
Subject: [PATCH] New: dol_syslog method accept a suffix to use different log
files for log.
---
ChangeLog | 3 ++-
htdocs/core/lib/functions.lib.php | 17 +++++++++--------
htdocs/core/modules/syslog/mod_syslog_file.php | 15 +++++++++------
3 files changed, 20 insertions(+), 15 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 9509d17c800..811660a00b0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -31,7 +31,8 @@ For developers:
- Function plimit of databases drivers accept -1 as value (it means default value set
into conf->liste_limit).
- New: Add option dol_hide_topmenu and dol_hide_leftmenu onto login page.
-
+- New: dol_syslog method accept a suffix to use different log files for log.
+
For translators:
- Update language files.
diff --git a/htdocs/core/lib/functions.lib.php b/htdocs/core/lib/functions.lib.php
index 36cf943c51b..99df1e73053 100644
--- a/htdocs/core/lib/functions.lib.php
+++ b/htdocs/core/lib/functions.lib.php
@@ -485,15 +485,16 @@ function dol_strtoupper($utf8_string)
* This function works only if syslog module is enabled.
* This must not use any call to other function calling dol_syslog (avoid infinite loop).
*
- * @param string $message Line to log. Ne doit pas etre traduit si level = LOG_ERR
- * @param int $level Log level
- * 0=Show nothing
- * On Windows LOG_ERR=4, LOG_WARNING=5, LOG_NOTICE=LOG_INFO=6, LOG_DEBUG=6 si define_syslog_variables ou PHP 5.3+, 7 si dolibarr
- * On Linux LOG_ERR=3, LOG_WARNING=4, LOG_INFO=6, LOG_DEBUG=7
- * @param int $ident 1=Increase ident of 1, -1=Decrease ident of 1
+ * @param string $message Line to log. Ne doit pas etre traduit si level = LOG_ERR
+ * @param int $level Log level
+ * 0=Show nothing
+ * On Windows LOG_ERR=4, LOG_WARNING=5, LOG_NOTICE=LOG_INFO=6, LOG_DEBUG=6 si define_syslog_variables ou PHP 5.3+, 7 si dolibarr
+ * On Linux LOG_ERR=3, LOG_WARNING=4, LOG_INFO=6, LOG_DEBUG=7
+ * @param int $ident 1=Increase ident of 1, -1=Decrease ident of 1
+ * @param string $suffixinfilename When output is a file, append this suffix into default log filename.
* @return void
*/
-function dol_syslog($message, $level = LOG_INFO, $ident = 0)
+function dol_syslog($message, $level = LOG_INFO, $ident = 0, $suffixinfilename='')
{
global $conf, $user;
@@ -543,7 +544,7 @@ function dol_syslog($message, $level = LOG_INFO, $ident = 0)
// Loop on each log handler and send output
foreach ($conf->loghandlers as $loghandlerinstance)
{
- $loghandlerinstance->export($data);
+ $loghandlerinstance->export($data,$suffixinfilename);
}
unset($data);
}
diff --git a/htdocs/core/modules/syslog/mod_syslog_file.php b/htdocs/core/modules/syslog/mod_syslog_file.php
index b0e1bd550b4..f5315f064ae 100644
--- a/htdocs/core/modules/syslog/mod_syslog_file.php
+++ b/htdocs/core/modules/syslog/mod_syslog_file.php
@@ -96,22 +96,25 @@ class mod_syslog_file extends LogHandler implements LogHandlerInterface
/**
* Return the parsed logfile path
*
- * @return string
+ * @param string $suffixinfilename When output is a file, append this suffix into default log filename.
+ * @return string
*/
- private function getFilename()
+ private function getFilename($suffixinfilename='')
{
- return str_replace('DOL_DATA_ROOT', DOL_DATA_ROOT, SYSLOG_FILE);
+ $tmp=str_replace('DOL_DATA_ROOT', DOL_DATA_ROOT, SYSLOG_FILE);
+ return $suffixinfilename?preg_replace('/\.log$/i', $suffixinfilename.'.log', $tmp):$tmp;
}
/**
* Export the message
*
- * @param array $content Array containing the info about the message
+ * @param array $content Array containing the info about the message
+ * @param string $suffixinfilename When output is a file, append this suffix into default log filename.
* @return void
*/
- public function export($content)
+ public function export($content, $suffixinfilename='')
{
- $logfile = $this->getFilename();
+ $logfile = $this->getFilename($suffixinfilename);
if (defined("SYSLOG_FILE_NO_ERROR")) $filefd = @fopen($logfile, 'a+');
else $filefd = fopen($logfile, 'a+');
--
GitLab