| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 | 
							- <?php
 
- /**
 
-  * @file
 
-  * Contains the Logger model.
 
-  */
 
- namespace Redis\Logger;
 
- class Writer {
 
-   const PREFIX = 'drupal:logger';
 
-   /**
 
-    * @var \Redis
 
-    *   Assumes use of Predis, not PhpRedis
 
-    */
 
-   protected $redis;
 
-   /**
 
-    * @var \Redis\Logger\Writer
 
-    */
 
-   protected static $instance;
 
-   /**
 
-    * TODO implement
 
-    *
 
-    * @var int
 
-    *   Maximum size of per-template event list. Non-empty() values enable
 
-    *   trimming on insert, so have a tiny performance impact: two O(1) commands
 
-    *   instead of one.
 
-    */
 
-   protected $list_limit = NULL;
 
-   /**
 
-    * @var bool
 
-    *   - true: messages are stored during the page cycle and sent on shutdown.
 
-    *   - false: message are sent immediately
 
-    */
 
-   public $deferred = FALSE;
 
-   /**
 
-    * @var \Redis\Logger\Entry[]
 
-    */
 
-   protected $entries = array();
 
-   /**
 
-    * @var \Redis\Logger\Settings
 
-    */
 
-   protected $settings;
 
-   /**
 
-    * Constructor.
 
-    *
 
-    * @param \Redis $redis
 
-    */
 
-   protected function __construct(\Redis $redis, Settings $settings = NULL) {
 
-     $this->redis = $redis;
 
-     if (!isset($settings)) {
 
-       $settings = new Settings();
 
-     }
 
-     $this->settings = $settings;
 
-   }
 
-   /**
 
-    * Public method to build a Logger from the singleton Redis client.
 
-    *
 
-    * @return static
 
-    */
 
-   public static function createFromGlobals() {
 
-     $redis = \Redis_Client::getClient();
 
-     assert('$redis instanceof \Redis');
 
-     return new static($redis);
 
-   }
 
-   /**
 
-    * Logger singleton accessor.
 
-    *
 
-    * @return \Redis\Logger\Writer
 
-    */
 
-   public static function instance() {
 
-     if (!isset(static::$instance)) {
 
-       static::$instance = static::createFromGlobals();
 
-     }
 
-     return static::$instance;
 
-   }
 
-   /**
 
-    * @param \Redis\Logger\Entry $entry
 
-    */
 
-   protected function post(Entry $entry) {
 
-     $list = $this->settings->getPrefix() . "{$entry->type}:{$entry->severity}:{$entry->message}";
 
-     $item = serialize($entry);
 
-     $this->redis->lPush($list, $item);
 
-   }
 
-   /**
 
-    * @param \Redis\Logger\Entry $entry
 
-    */
 
-   public function log(Entry $entry) {
 
-     if ($this->deferred) {
 
-       $this->entries[] = $entry;
 
-     }
 
-     else {
 
-       $this->post($entry);
 
-     }
 
-   }
 
- }
 
 
  |