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);
 | |
| 			}
 | |
| 		}
 | |
|     } |