Change the logging file name set

The date part is not set external, but internal via a flag.
The file name extension cannot be set anymore and the file_name_ext has
been removed and is now log_file_name_ext and privte.

This is a drop in solution and can be used with previous settings.

Changes that should be done:
Class.Login: remove the file name ext and replace it with log_per_class
= 1
Remove all file_name_ext entries as they area not needed anymore
This commit is contained in:
Clemens Schwaighofer
2017-02-22 10:18:53 +09:00
parent bdcd83c579
commit 03be3a317f
4 changed files with 35 additions and 44 deletions

View File

@@ -54,9 +54,6 @@
print "DEBUG OUT ALL: ".$basic->debug_output_all."<br>";
print "ECHO OUT ALL: ".$basic->echo_output_all."<br>";
print "PRINT OUT ALL: ".$basic->print_output_all."<br>";
// file name (logging)
print "FILENAME EXT: ".$basic->file_name_ext."<br>";
print "MAX FILESIZE: ".$basic->max_filesize."<br>";
print "CALLER BACKTRACE: ".$basic->get_caller_method()."<br>";
$basic->debug('SOME MARK', 'Some error output');

View File

@@ -56,8 +56,6 @@
$smarty = new SmartyML($lang);
// create new DB class
$cms = new AdminBackend($DB_CONFIG[MAIN_DB], $lang);
// set daily rotation
$cms->file_name_ext = '_'.date('Y-m-d').'.log';
// set search path to the default DB schema
$cms->db_exec("SET search_path TO ".DB_SCHEMA);
// the menu show flag (what menu to show)

View File

@@ -103,7 +103,7 @@
private $error_id; // error ID for errors in classes
private $error_string; // error strings in classes (for error_id)
public $error_msg = array (); // the "connection" to the outside errors
private $error_msg = array (); // the "connection" to the outside errors
public $debug_output; // if this is true, show debug on desconstructor
public $debug_output_not;
@@ -115,15 +115,14 @@
public $print_output_not;
public $print_output_all;
// file rotate flags, if they are over this, file gets rotated
// old files are named print_file_YYYY-MM-DD_ddddd, where ddddd is a per day increasing number
public $file_name_ext = ''; // use this for date rotate
public $max_filesize = 0; // set in kilobytes
// log file name
public $print_file = 'error_msg##LEVEL####CLASS####PAGENAME##';
public $one_file = 0; // if this is set to true, all log dat is written to one file
public $per_page = 0;
public $per_class = 0;
private $log_file_name_ext = 'log'; // use this for date rotate
public $log_max_filesize = 0; // set in kilobytes
private $log_print_file = 'error_msg##LEVEL####CLASS####PAGENAME####DATE##';
public $log_print_file_date = 1; // if set add Y-m-d and do automatic daily rotation
public $log_per_level = 0; // set, it will split per level (first parameter in debug call)
public $log_per_class = 0; // set, will split log per class
public $log_per_page = 0; // set, will split log per called file
public $starttime; // start time if time debug is used
public $endtime; // end time if time debug is used
@@ -165,9 +164,6 @@
{
// set per run UID for logging
$this->running_uid = hash($this->hash_algo, uniqid(rand(), true));
// set core file extension for logging with Y M D date
if (!$this->file_name_ext)
$this->file_name_ext = '_'.date('Y-m-d').'.log';
// internal info var
$this->class_info["basic"] = array (
@@ -219,19 +215,11 @@
if (isset($GLOBALS['PRINT_ALL']))
$this->print_output_all = $GLOBALS['PRINT_ALL'];
if (isset($GLOBALS['FILE_NAME_EXT']) && !$this->file_name_ext)
$this->file_name_ext = $GLOBALS['FILE_NAME_EXT'];
if (isset($GLOBALS['MAX_FILESIZE']))
$this->max_filesize = $GLOBALS['MAX_FILESIZE'];
// check the file_ext and max size
if (!preg_match("/\w/", $this->file_name_ext))
$this->file_name_ext = '';
if (!preg_match("/\d/", $this->max_filesize))
$this->max_filesize = 0;
// set default extension
if (!$this->file_name_ext)
$this->file_name_ext = '.log';
// set the regex for checking emails
$this->email_regex = "^[A-Za-z0-9!#$%&'*+-\/=?^_`{|}~][A-Za-z0-9!#$%:\(\)&'*+-\/=?^_`{|}~\.]{0,63}@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]{1,})*\.([a-zA-Z]{2,6}){1}$";
@@ -610,34 +598,42 @@
// $error_string = preg_replace("/(<\/?)(\w+)([^>]*>)/", "", $error_string);
// replace special line break tag
// $error_string = str_replace('<!--#BR#-->', "\n", $error_string);
// init output variable
$output = $error_string; // output formated error string to output file
$rpl_string = (!$this->one_file) ? '' : '_'.$level; // if request to write to one file
$fn = ROOT.LOG.str_replace('##LEVEL##', $rpl_string, $this->print_file.$this->file_name_ext); // create output filename
$rpl_string = (!$this->per_class) ? '' : '_'.get_class($this); // set sub class settings
// init base file path
$fn = ROOT.LOG.$this->log_print_file.'.'.$this->log_file_name_ext;
$rpl_string = !$this->log_print_file_date ? '' : '_'.date('Y-m-d'); // add date to file
$fn = str_replace('##DATE##', $rpl_string, $fn); // create output filename
$rpl_string = !$this->log_per_level ? '' : '_'.$level; // if request to write to one file
$fn = str_replace('##LEVEL##', $rpl_string, $fn); // create output filename
$rpl_string = !$this->log_per_class ? '' : '_'.get_class($this); // set sub class settings
$fn = str_replace('##CLASS##', $rpl_string, $fn); // create output filename
$rpl_string = (!$this->per_page) ? '' : '_'.$this->get_page_name(1); // if request to write to one file
$rpl_string = !$this->log_per_page ? '' : '_'.$this->get_page_name(1); // if request to write to one file
$fn = str_replace('##PAGENAME##', $rpl_string, $fn); // create output filename
// write to file
// first check if max file size is is set and file is bigger
if ($this->max_filesize > 0 && ((filesize($fn) / 1024) > $this->max_filesize))
if ($this->log_max_filesize > 0 && ((filesize($fn) / 1024) > $this->log_max_filesize))
{
// for easy purpose, rename file only to attach timestamp, nur sequence numbering
rename($fn, $fn.'.'.date("YmdHis"));
// check list of "fn"* and see if we have alrady an extension one, if not add 00001, if yes, take this and add +1
/* if (is_array(glob($fn."*")))
{
foreach (glob($fn."*") as $_filename)
{
if (preg_match("/\.(\d{5})$/", $_filename, $matches))
{
}
}
} */
}
$fp = fopen($fn, 'a');
fwrite($fp, $output);
fclose($fp);
if ($fp !== false)
{
fwrite($fp, $output);
fclose($fp);
}
else
{
echo "<!-- could not open file: $fn //-->";
}
} // do write to file
}
}

View File

@@ -100,8 +100,8 @@
exit;
}
// set log file name
$this->file_name_ext = '_login_'.date('Y-m-d').'.log';
// log login data for this class only
$this->log_per_class = 1;
// get the language sub class & init it
_spl_autoload('Class.l10n.inc');