This PHP class can log entries to files.
It can append log entry messages to given log files.
The log entries can include the current timestamp and the current script memory usage.
Code Example:
index.php
<?php
require_once 'Logger.class.php';
// write in log file
$obLog = new Logger('mylog.log');
$obLog->LogIt('Start script3',true,"\n","r+",true);
$obLog->LogIt('Start script2',true,"\n","a+",true);
$obLog->LogIt('Start script1',true,"\n","a+",true);
?>
Logger.class.php
<?php
class Logger {
/**
* Link to opened file
* @access private
* @var void
*/
private $logSource ='';
/**
* Log file name
* @access private
* @var string
*/
private $logFilename ='';
/**
* Constructor
*/
function __construct($logFilename,$createMode='w'){
$this->logFilename = $logFilename;
$this->logSource = fopen($this->logFilename,$createMode);
if(!$this->logSource) {
trigger_error('Don create file: '.$this->logFilename,E_USER_ERROR);
} else {
fclose($this->logSource);
}
}
/**
* Write string in log file
* @param string $str - Your string
* @param bool $timestamp - Write date in file? (true/false)
* @param string $writeMode - Mode of write.(see http://ru2.php.net/manual/en/function.fopen.php)
* @param bool $showMemoryUse - Write memory use in file? (true/false)
* @return void
*/
function LogIt($str,$timestamp=true,$separator="\n",$writeMode='a+',$showMemoryUse=true) {
$this->logSource = fopen($this->logFilename,$writeMode);
if(!$this->logSource) {
trigger_error('Don read/write file: '.$this->logFilename,E_USER_ERROR);
} else {
if($timestamp) {
$str = date('Y-d-m H:i:s',time()).' -- '.$str;
}
if($showMemoryUse) {
$str = $str.' -- Memory usage: '.$this->ConvertBytes(memory_get_usage(true)).' kb.';
}
$ok = fwrite($this->logSource,$str.$separator);
fclose($this->logSource);
}
}
/**
* Function convert byte to kilobyte
* @param string $str - Number use of memory
* @return int
*/
function ConvertBytes($str) {
return intval($str)/1024;
}
}
?>