caller, $this->section */ class sfIsisImporterLog { /** * @var object $instance The singleton instance. */ private static $instance = null; /** * @var object $instance Default loglevel. */ public static $loglevel; /** * @var int $processed Number of processed entries. */ var $processed = 0; /** * Get the singleton instance. * * @param string $loglevel Log level to use */ public static function getInstance($loglevel = null) { if(self::$instance == null) { self::$instance = new self; } if ($loglevel != null) { self::$loglevel = $loglevel; } return self::$instance; } /** * Constructor. */ private function __construct($loglevel = 'info') { $this->loglevel = $loglevel; } /** * Log dispatcher. * * @param string $message Log message * @param string $level Log level */ public function log($message, $level = 'info') { // Available log levels ordered by verbosity. $levels = array_flip(array('fatal', 'info', 'warn', 'error', 'debug')); // Log level checking. if (array_search($level, $levels) === FALSE) { $this->log("Invalid log level $level.", 'error'); return; } elseif ($levels[$level] > $levels[$this->loglevel]) { return; } // Dispatch. if ($this->section == 'action') { $this->caller->logMessage($message, $level); } else { $this->caller->logSection('isisImporter', "[$level] $message"); } } /** * Progress notifier. * * @param int $n Row number */ public function progress($n) { $this->processed = $n; if ($this->section == 'action') { $this->caller->output .= "Saved item $n\n"; } else { // Progress bar is just shown if loglevel is 'fatal'. if ($this->loglevel == 'fatal') { $this->caller->progressBar($n, $this->entries); } } return $this->processed; } }