Code: Select all
<?php
class Log {
protected $handle;
protected $registry;
public function __construct($filename, $registry) {
$this->handle = fopen(DIR_LOGS . $filename, 'a');
$this->registry = $registry;
}
public function __get($name) {
return $this->registry->get($name);
}
public function write($message) {
$file_size = ($this->handle ? @filesize(DIR_LOGS . $filename) : false);
$file_size = $this->formatFileSize($file_size);
if ((int)$file_size < (int)$this->config->get('config_log_filesize_limit')) {
fwrite($this->handle, date('Y-m-d G:i:s') . ' - ' . print_r($message, true) . "\n");
} else {
$this->handle = fopen(DIR_LOGS . 'fullsize_reached.log', 'a');
fwrite($this->handle, date('Y-m-d G:i:s') . ' - ' . print_r($this->language->get('text_fullsize_reached'), true) . "\n");
}
}
public function formatFileSize($file_size = 0) {
if (!$file_size) {
return $this->language->get('text_not_available'); // n/a
}
if (strlen($file_size) <= 9 && strlen($file_size) >= 7) {
$file_size = number_format($file_size / 1048576, 1);
return preg_replace('~{text_filesize_mb}~', $file_size, $this->language->get('text_filesize_mb')); // $file_size." MB"
} elseif (strlen($file_size) >= 10) {
$file_size = number_format($file_size / 1073741824, 1);
return preg_replace('~{text_filesize_gb}~', $file_size, $this->language->get('text_filesize_gb')); // $file_size." GB"
} else {
$file_size = number_format($file_size / 1024, 1);
return preg_replace('~{text_filesize_kb}~', $file_size, $this->language->get('text_filesize_kb')); // $file_size." KB"
}
}
public function __destruct() {
fclose($this->handle);
}
}