BaseLogger.class.php

Go to the documentation of this file.
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 ?>

Generated on Sun Dec 9 21:56:24 2007 for onPHP by  doxygen 1.5.4