00001 <?php 00002 /*************************************************************************** 00003 * Copyright (C) 2007 by Ivan Y, Khvostishkov, Denis M. Gabaidulin * 00004 * * 00005 * This program is free software; you can redistribute it and/or modify * 00006 * it under the terms of the GNU Lesser General Public License as * 00007 * published by the Free Software Foundation; either version 3 of the * 00008 * License, or (at your option) any later version. * 00009 * * 00010 ***************************************************************************/ 00011 00015 final class LogRecord 00016 { 00017 private $message = null; 00018 private $level = LogLevel::INFO; 00019 00020 private $date = null; 00021 00022 public function __construct() 00023 { 00024 $this->date = Timestamp::makeNow(); 00025 } 00026 00030 public static function create() 00031 { 00032 return new self; 00033 } 00034 00038 public function setMessage($message) 00039 { 00040 Assert::isString($message); 00041 00042 $this->message = $message; 00043 00044 return $this; 00045 } 00046 00047 public function getMessage() 00048 { 00049 return $this->message; 00050 } 00051 00055 public function setDate(Timestamp $date) 00056 { 00057 $this->date = $date; 00058 00059 return $this; 00060 } 00061 00065 public function getDate() 00066 { 00067 return $this->date; 00068 } 00069 00073 public function setLevel(LogLevel $level) 00074 { 00075 $this->level = $level; 00076 00077 return $this; 00078 } 00079 00083 public function getLevel() 00084 { 00085 return $this->level; 00086 } 00087 00093 public function toString() 00094 { 00095 return sprintf( 00096 '%s %2s %s %s: %s', 00097 date('M', $this->date->toStamp()), $this->date->getDay(), 00098 $this->date->toTime(':', ':'), 00099 $this->level->getName(), 00100 $this->message 00101 ); 00102 } 00103 } 00104 ?>