From 1082691f669516840f67c8f45b963cb1d067e282 Mon Sep 17 00:00:00 2001 From: Andre Lorbach Date: Fri, 20 Mar 2009 15:35:26 +0100 Subject: [PATCH] Added support for dynamic filenames in disk logstream. This means you can use date properties like the current year, month or day in the filename. A list of possible replacement characters is here: %y = Year with two digits (e.g. 2002 becomes "02") %Y = Year with 4 digits %m = with two digits (e.g. March becomes "03") %M = Minute with two digits %d = Day of month with two digits (e.g. March, 1st becomes "01") %h = Hour as two digits %S = Seconds as two digits. It is hardly believed that this ever be used in reality. %w = Weekday as one digit. 0 means Sunday, 1 Monday and so on. %W = Weekday as three-character string. Possible values are "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat". --- src/classes/logstreamconfigdisk.class.php | 50 ++++++++++++++++++++++- src/include/functions_config.php | 2 +- src/include/functions_frontendhelpers.php | 2 + src/templates/include_footer.html | 19 +++++---- 4 files changed, 62 insertions(+), 11 deletions(-) diff --git a/src/classes/logstreamconfigdisk.class.php b/src/classes/logstreamconfigdisk.class.php index 8f957e6..657245c 100644 --- a/src/classes/logstreamconfigdisk.class.php +++ b/src/classes/logstreamconfigdisk.class.php @@ -39,10 +39,11 @@ if ( !defined('IN_PHPLOGCON') ) // --- class LogStreamConfigDisk extends LogStreamConfig { + // Public properties public $FileName = ''; public $LineParserType = "syslog"; // Default = Syslog! public $_lineParser = null; - + public function LogStreamFactory($o) { // An instance is created, then include the logstreamdisk class as well! @@ -79,5 +80,50 @@ class LogStreamConfigDisk extends LogStreamConfig { DieWithErrorMsg("Couldn't locate LineParser include file '" . $strIncludeFile . "'"); } + /* + * Helper function to Set the FileName property + */ + public function SetFileName( $szNewVal ) + { + // Replace dynamic variables if necessary + if ( strpos($szNewVal, "%") !== false ) + { + OutputDebugMessage("LogStreamConfigDisk|SetFileName: Filename before replacing: " . $szNewVal, DEBUG_DEBUG); + + // Create search and replace array + $search = array ( + "%y", /* Year with two digits (e.g. 2002 becomes "02") */ + "%Y", /* Year with 4 digits */ + "%m", /* Month with two digits (e.g. March becomes "03") */ + "%M", /* Minute with two digits */ + "%d", /* Day of month with two digits (e.g. March, 1st becomes "01") */ + "%h", /* Hour as two digits */ + "%S", /* Seconds as two digits. It is hardly believed that this ever be used in reality. */ + "%w", /* Weekday as one digit. 0 means Sunday, 1 Monday and so on. */ + "%W", /* Weekday as three-character string. Possible values are "Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat". */ + ); + $replace = array ( + date("y"), + date("Y"), + date("m"), + date("i"), + date("d"), + date("H"), + date("s"), + date("w"), + date("D"), + ); + + // Do the replacing + $szNewVal = str_replace( $search, $replace, $szNewVal ); + + OutputDebugMessage("LogStreamConfigDisk|SetFileName: Filename after replacing: " . $szNewVal, DEBUG_DEBUG); + } + + // Set Filename Property! + $this->FileName = $szNewVal; + } + + } -?> +?> \ No newline at end of file diff --git a/src/include/functions_config.php b/src/include/functions_config.php index 6db76b8..8b720ec 100644 --- a/src/include/functions_config.php +++ b/src/include/functions_config.php @@ -129,7 +129,7 @@ function InitSource(&$mysource) // Perform necessary include require_once($gl_root_path . 'classes/logstreamconfigdisk.class.php'); $mysource['ObjRef'] = new LogStreamConfigDisk(); - $mysource['ObjRef']->FileName = $mysource['DiskFile']; + $mysource['ObjRef']->SetFileName( $mysource['DiskFile'] ); $mysource['ObjRef']->LineParserType = $mysource['LogLineType']; } else if ( $mysource['SourceType'] == SOURCE_DB ) diff --git a/src/include/functions_frontendhelpers.php b/src/include/functions_frontendhelpers.php index 10c7961..985e152 100644 --- a/src/include/functions_frontendhelpers.php +++ b/src/include/functions_frontendhelpers.php @@ -239,6 +239,8 @@ function OutputDebugMessage($szDbg, $szDbgLevel = DEBUG_INFO) // Check if we should print the Error! if ( GetConfigSetting("MiscShowDebugMsg", 0, CFGLEVEL_USER) == 1 ) { + // Set Debugshow true + $content['SHOWDEBUGMSG'] = true; $content['DEBUGMSG'][] = array( "DBGLEVEL" => $szDbgLevel, "DBGLEVELTXT" => GetDebugModeString($szDbgLevel), diff --git a/src/templates/include_footer.html b/src/templates/include_footer.html index 16c2db0..6c2f89b 100644 --- a/src/templates/include_footer.html +++ b/src/templates/include_footer.html @@ -36,20 +36,23 @@ - + + - - - - + + + + + +
{LN_DEBUGLEVEL} {LN_DEBUGMESSAGE}
{DBGLEVELTXT} -
{DBGMSG}
-
{DBGLEVELTXT} +
{DBGMSG}
+
- + {EXTRA_FOOTER}