Development

/branches/1.0/lib/log/sfLogger.class.php

You must first sign up to be able to contribute.

root/branches/1.0/lib/log/sfLogger.class.php

Revision 16344, 4.7 kB (checked in by fabien, 5 years ago)

[1.0, 1.1, 1.2, 1.3] replaced this->level usage by this->getLogLevel (closes #6086)

  • Property svn:mime-type set to text/x-php
  • Property svn:eol-style set to native
  • Property svn:keywords set to Id Rev Date
Line 
1 <?php
2
3 /*
4  * This file is part of the symfony package.
5  * (c) 2004-2006 Fabien Potencier <fabien.potencier@symfony-project.com>
6  *
7  * For the full copyright and license information, please view the LICENSE
8  * file that was distributed with this source code.
9  */
10
11 define('SF_LOG_EMERG',   0); // System is unusable
12 define('SF_LOG_ALERT',   1); // Immediate action required
13 define('SF_LOG_CRIT',    2); // Critical conditions
14 define('SF_LOG_ERR',     3); // Error conditions
15 define('SF_LOG_WARNING', 4); // Warning conditions
16 define('SF_LOG_NOTICE'5); // Normal but significant
17 define('SF_LOG_INFO',    6); // Informational
18 define('SF_LOG_DEBUG',   7); // Debug-level messages
19
20 /**
21  * sfLogger manages all logging in symfony projects.
22  *
23  * sfLogger can be configuration via the logging.yml configuration file.
24  * Loggers can also be registered directly in the logging.yml configuration file.
25  *
26  * This level list is ordered by highest priority (SF_LOG_EMERG) to lowest priority (SF_LOG_DEBUG):
27  * - EMERG:   System is unusable
28  * - ALERT:   Immediate action required
29  * - CRIT:    Critical conditions
30  * - ERR:     Error conditions
31  * - WARNING: Warning conditions
32  * - NOTICE:  Normal but significant
33  * - INFO:    Informational
34  * - DEBUG:   Debug-level messages
35  *
36  * @package    symfony
37  * @subpackage log
38  * @author     Fabien Potencier <fabien.potencier@symfony-project.com>
39  * @version    SVN: $Id$
40  */
41 class sfLogger
42 {
43   protected
44     $loggers = array(),
45     $level   = SF_LOG_EMERG,
46     $levels  = array(
47       SF_LOG_EMERG   => 'emerg',
48       SF_LOG_ALERT   => 'alert',
49       SF_LOG_CRIT    => 'crit',
50       SF_LOG_ERR     => 'err',
51       SF_LOG_WARNING => 'warning',
52       SF_LOG_NOTICE  => 'notice',
53       SF_LOG_INFO    => 'info',
54       SF_LOG_DEBUG   => 'debug',
55     );
56
57   protected static
58     $logger = null;
59
60   /**
61    * Returns the sfLogger instance.
62    *
63    * @return  object the sfLogger instance
64    */
65   public static function getInstance()
66   {
67     if (!sfLogger::$logger)
68     {
69       // the class exists
70       $class = __CLASS__;
71       sfLogger::$logger = new $class();
72       sfLogger::$logger->initialize();
73     }
74
75     return sfLogger::$logger;
76   }
77
78   /**
79    * Initializes the logger.
80    */
81   public function initialize()
82   {
83     $this->loggers = array();
84   }
85
86   /**
87    * Retrieves the log level for the current logger instance.
88    *
89    * @return string Log level
90    */
91   public function getLogLevel()
92   {
93     return $this->level;
94   }
95
96   /**
97    * Sets a log level for the current logger instance.
98    *
99    * @param string Log level
100    */
101   public function setLogLevel($level)
102   {
103     $this->level = $level;
104   }
105
106   /**
107    * Retrieves current loggers.
108    *
109    * @return array List of loggers
110    */
111   public function getLoggers()
112   {
113     return $this->loggers;
114   }
115
116   /**
117    * Registers a logger.
118    *
119    * @param object The Logger object
120    */
121   public function registerLogger($logger)
122   {
123     $this->loggers[] = $logger;
124   }
125
126   /**
127    * Logs a message.
128    *
129    * @param string Message
130    * @param string Message priority
131    */
132   public function log($message, $priority = SF_LOG_INFO)
133   {
134     if ($this->getLogLevel() < $priority)
135     {
136       return;
137     }
138
139     foreach ($this->loggers as $logger)
140     {
141       $logger->log((string) $message, $priority, $this->levels[$priority]);
142     }
143   }
144
145   /**
146    * Sets an emerg message.
147    *
148    * @param string Message
149    */
150   public function emerg($message)
151   {
152     $this->log($message, SF_LOG_EMERG);
153   }
154
155   /**
156    * Sets an alert message.
157    *
158    * @param string Message
159    */
160   public function alert($message)
161   {
162     $this->log($message, SF_LOG_ALERT);
163   }
164
165   /**
166    * Sets a critical message.
167    *
168    * @param string Message
169    */
170   public function crit($message)
171   {
172     $this->log($message, SF_LOG_CRIT);
173   }
174
175   /**
176    * Sets an error message.
177    *
178    * @param string Message
179    */
180   public function err($message)
181   {
182     $this->log($message, SF_LOG_ERR);
183   }
184
185   /**
186    * Sets a warning message.
187    *
188    * @param string Message
189    */
190   public function warning($message)
191   {
192     $this->log($message, SF_LOG_WARNING);
193   }
194
195   /**
196    * Sets a notice message.
197    *
198    * @param string Message
199    */
200   public function notice($message)
201   {
202     $this->log($message, SF_LOG_NOTICE);
203   }
204
205   /**
206    * Sets an info message.
207    *
208    * @param string Message
209    */
210   public function info($message)
211   {
212     $this->log($message, SF_LOG_INFO);
213   }
214
215   /**
216    * Sets a debug message.
217    *
218    * @param string Message
219    */
220   public function debug($message)
221   {
222     $this->log($message, SF_LOG_DEBUG);
223   }
224
225   /**
226    * Executes the shutdown procedure.
227    *
228    * Cleans up the current logger instance.
229    */
230   public function shutdown()
231   {
232     foreach ($this->loggers as $logger)
233     {
234       if (method_exists($logger, 'shutdown'))
235       {
236         $logger->shutdown();
237       }
238     }
239
240     $this->loggers = array();
241   }
242 }
243
Note: See TracBrowser for help on using the browser.