Source of file Logable.php
Size: 1,450 Bytes - Last Modified: 2021-12-24T05:18:55+00:00
/var/www/docs.ssmods.com/process/src/src/Traits/Logable.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 | <?php namespace IQnection\BigCommerceApp\Traits; use SilverStripe\Control\Director; /** * Adds methods to a class for easy and consistent logging of data, whatever it might be */ trait Logable { protected $debug = false; public function setDebug($debug = true) { $this->debug = $debug; return $this; } public function getDebug() { return $this->debug; } public function logEntry($data, $filename, $title = null, $key = null) { $dir = Director::getAbsFile('bc-logs'); if (!file_exists($dir)) { mkdir($dir,0777,true); } $filePath = $dir.'/'.$filename; $trace = debug_backtrace(false, 2); $debug = "\n".str_repeat('-',30); $debug .= "\nFile: ".$trace[1]['file']; $debug .= "\nLine: ".$trace[1]['line']; $debug .= "\n".date('c'); $debug .= $key ? "\nKey: ".$key : null; $debug .= "\n".$title; $debug .= "\nData:"; $debug .= "\n".print_r($data,1); file_put_contents($filePath, $debug, FILE_APPEND); } public function logDebug($data,$title, $key = null) { if ($this->getDebug()) { $filename = date('Y-m-d').'.log'; $this->logEntry($data, $filename, $title, $key); } } public function logError($data, $title) { $filename = date('Y-m-d').'.error.log'; $this->logEntry($data, $filename, $title, $key); } public function logException(\Exception $e) { $this->logError([ 'message' => $e->getMessage(), 'exception' => $e->__toString() ],'---EXCEPTION---'); } } |