48 lines
1.2 KiB
PHP
48 lines
1.2 KiB
PHP
|
<?php
|
||
|
|
||
|
namespace WP_Piwik\Logger;
|
||
|
|
||
|
class File extends \WP_Piwik\Logger {
|
||
|
|
||
|
private $loggerFile = null;
|
||
|
|
||
|
private function encodeFilename($fileName) {
|
||
|
$fileName = str_replace (' ', '_', $fileName);
|
||
|
preg_replace('/[^0-9^a-z^_^.]/', '', $fileName);
|
||
|
return $fileName;
|
||
|
}
|
||
|
|
||
|
private function setFilename() {
|
||
|
$this->loggerFile = WP_PIWIK_PATH.'logs'.DIRECTORY_SEPARATOR.
|
||
|
date('Ymd').'_'.$this->encodeFilename($this->getName()).'.log';
|
||
|
}
|
||
|
|
||
|
private function getFilename() {
|
||
|
return $this->loggerFile;
|
||
|
}
|
||
|
|
||
|
private function openFile() {
|
||
|
if (!$this->loggerFile)
|
||
|
$this->setFilename();
|
||
|
return fopen($this->getFilename(), 'a');
|
||
|
}
|
||
|
|
||
|
private function closeFile($fileHandle) {
|
||
|
fclose($fileHandle);
|
||
|
}
|
||
|
|
||
|
private function writeFile($fileHandle, $fileContent) {
|
||
|
fwrite($fileHandle, $fileContent."\n");
|
||
|
}
|
||
|
|
||
|
private function formatMicrotime($loggerTime) {
|
||
|
return sprintf('[%6s sec]',number_format($loggerTime,3));
|
||
|
}
|
||
|
|
||
|
public function loggerOutput($loggerTime, $loggerMessage) {
|
||
|
if ($fileHandle = $this->openFile()) {
|
||
|
$this->writeFile($fileHandle, $this->formatMicrotime($loggerTime).' '.$loggerMessage);
|
||
|
$this->closeFile($fileHandle);
|
||
|
}
|
||
|
}
|
||
|
}
|