00001 <?php 00002 /*************************************************************************** 00003 * Copyright (C) 2007 by Ivan Y. Khvostishkov * 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 /* $Id: BaseLogger.class.php 4687 2007-12-09 18:57:18Z voxus $ */ 00012 00016 abstract class BaseLogger 00017 { 00018 private $level = null; 00019 00023 abstract protected function publish(LogRecord $record); 00024 00028 public function setLevel(LogLevel $level) 00029 { 00030 $this->level = $level; 00031 00032 return $this; 00033 } 00034 00038 public function getLevel() 00039 { 00040 return $this->level; 00041 } 00042 00046 final public function log(LogLevel $level, $message) 00047 { 00048 $this->logRecord( 00049 LogRecord::create()-> 00050 setLevel($level)-> 00051 setMessage($message) 00052 ); 00053 00054 return $this; 00055 } 00056 00060 final public function logRecord(LogRecord $record) 00061 { 00062 $levelMatches = 00063 $this->level === null 00064 || $record->getLevel()->getId() <= $this->level->getId(); 00065 00066 if ($levelMatches && $this->isLoggable($record)) 00067 $this->publish($record); 00068 00069 return $this; 00070 } 00071 00075 protected function isLoggable(LogRecord $record) 00076 { 00077 return true; 00078 } 00079 00083 final public function severe($message) 00084 { 00085 $this->log(LogLevel::severe(), $message); 00086 00087 return $this; 00088 } 00089 00093 final public function warning($message) 00094 { 00095 $this->log(LogLevel::warning(), $message); 00096 00097 return $this; 00098 } 00099 00103 final public function info($message) 00104 { 00105 $this->log(LogLevel::info(), $message); 00106 00107 return $this; 00108 } 00109 00113 final public function config($message) 00114 { 00115 $this->log(LogLevel::config(), $message); 00116 00117 return $this; 00118 } 00119 00123 final public function fine($message) 00124 { 00125 $this->log(LogLevel::fine(), $message); 00126 00127 return $this; 00128 } 00129 00133 final public function finer($message) 00134 { 00135 $this->log(LogLevel::finer(), $message); 00136 00137 return $this; 00138 } 00139 00143 final public function finest($message) 00144 { 00145 $this->log(LogLevel::finest(), $message); 00146 00147 return $this; 00148 } 00149 } 00150 ?>