5 class File extends \Rsi\Fred\Log\Handler{
15 protected function format($prio,$context){
17 foreach($context as $key => $value)
if(strlen($result .= $key .
': ' . print_r($value,
true) .
"\n") > $this->maxSize){
24 public function add($prio,$message,$context){
27 if($this->filename)
try{
29 '*date/time' => $this->_lastInsertTime = date($this->dateTimeFormat),
30 '*message' => $message,
33 if(\Rsi::commandLine()) $context = [
'*command' => implode(
' ',[0 => get_included_files()[0]] + ($argv ?: []))] + $context;
35 if($user_agent = $this->_log->component(
'client')->userAgent) $context = [
'*user agent' => $user_agent] + $context;
36 if($referrer = $_SERVER[
'HTTP_REFERER'] ??
null) $context = [
'*referrer' => $referrer] + $context;
38 '*request' => $_SERVER[
'REQUEST_METHOD'] .
' ' . $_SERVER[
'REQUEST_URI'] .
' ' . $_SERVER[
'SERVER_PROTOCOL'],
39 '*remote addr' => $_SERVER[
'REMOTE_ADDR'],
40 '*started' => date($this->dateTimeFormat,floor($this->_log->fred->startTime))
43 \Rsi\File::mkdir(\
Rsi\File::dirname($this->filename));
44 \Rsi\File::write($this->filename,$this->
format($prio,$context),0666,
true);
47 if($this->_log->fred->debug)
throw $e;
56 foreach([60,3600,86400] as $delta)
if(($next = \
Rsi\Str::replaceDate($this->
format,$time + $delta)) != $this->filename){
57 \Rsi\File::unlink($next);
64 if($this->_filename ===
null){
65 $this->_filename = $this->_config[
'filename'] ??
null;
66 if(!$this->_filename) $this->_filename = \Rsi\Str::replaceDate($this->
format);