Exemplo n.º 1
0
 public function init()
 {
     $writer = new Zend_Log_Writer_Firebug();
     $logger = new Zend_Log($writer);
     $logger->addPriority('LOGD', 8);
     $writer->setPriorityStyle(8, 'LOG');
     $logger->addPriority('ERROR', 9);
     $writer->setPriorityStyle(9, 'ERROR');
     $logger->addPriority('TRACE', 10);
     $writer->setPriorityStyle(10, 'TRACE');
     $logger->addPriority('EXCEPTION', 11);
     $writer->setPriorityStyle(11, 'EXCEPTION');
     $logger->addPriority('TABLE', 12);
     $writer->setPriorityStyle(12, 'TABLE');
     $logger->logd($_SERVER);
     $logger->info($_SERVER);
     $logger->warn($_SERVER);
     $logger->error($_SERVER);
     $logger->trace($_SERVER);
     try {
         throw new Exception('Test Exception');
     } catch (Exception $e) {
         $logger->exception($e);
     }
     $logger->table(array('2 SQL queries took 0.06 seconds', array(array('SQL Statement', 'Time', 'Result'), array('SELECT * FROM Foo', '0.02', array('row1', 'row2')), array('SELECT * FROM Bar', '0.04', array('row1', 'row2')))));
 }
Exemplo n.º 2
0
 /**
  * Send data
  * @param array $data
  * @return boolean
  */
 public function send(Message $message)
 {
     $router = $this->_params['router'];
     if (!$router) {
         $this->_logger->warn('Publish router is not defined: message cannot be sent');
         return;
     }
     //创建channel
     $channel = $this->_getChannel();
     //创建exchange
     $exchange = $this->_getExchange();
     if (!$exchange->declareExchange()) {
         return false;
     }
     //创建队列
     $this->_getQueue();
     $publishParams = ['content_type' => 'text/plain', 'app_id' => 100, 'message_id' => 100, 'delivery_mode' => 2, 'priority' => 9, 'type' => 'system', 'timestamp' => time(), 'reply_to' => 'hacker', 'headers' => ['name' => 'Musikar']];
     $publishParams = array_merge($this->_publishParams, $publishParams);
     $channel->startTransaction();
     //将你的消息通过制定routingKey发送
     $data = $message->getData();
     foreach ($data as $value) {
         $result = $exchange->publish(serialize($value), $router, AMQP_NOPARAM, $publishParams);
     }
     $channel->commitTransaction();
     $this->close();
     return $result;
 }
Exemplo n.º 3
0
 /**
  *
  * @param Apache_Solr_Response $solrResponse
  */
 private function setJsonResponseAsArray($solrResponse)
 {
     try {
         $this->jsonResponse = Zend_Json::decode($solrResponse->getRawResponse());
         if (is_null($this->jsonResponse)) {
             $this->log->warn("result of decoding solr's json string is null");
         }
     } catch (Exception $e) {
         $this->log->warn("error while decoding solr's json response");
     }
 }
Exemplo n.º 4
0
 /**
  * Send message
  *
  * @param Oggetto_Messenger_Model_Message_Interface $message Message
  * @return void
  */
 public function send(Oggetto_Messenger_Model_Message_Interface $message)
 {
     if (!$this->_publishRouter) {
         $this->_logger->warn('Publish router is not defined: message cannot be sent');
         return;
     }
     if ($queue = $this->_publishRouter->findMessageQueue($message)) {
         $this->_declareQueue($queue);
         $this->_sendMessage($message, $queue);
     } else {
         $this->_logger->warn('Destination queue not found for message:');
         $this->_logger->warn(print_r($message->getMeta(), true));
     }
 }
Exemplo n.º 5
0
 private function setFacetFieldsFromConfig()
 {
     if (!isset($this->config->searchengine->solr->facets)) {
         // no facets are being configured
         $this->log->warn("Key searchengine.solr.facets is not present in config. No facets will be displayed.");
         return array();
     }
     $result = array();
     $facets = $this->getAvailableFacetsFromConfig();
     foreach ($facets as $facet) {
         array_push($result, trim($facet));
     }
     return $result;
 }
Exemplo n.º 6
0
 /**
  * Add readFile privilege to all files of this document.
  *
  * @param string $roleName
  * @return Matheon_Model_Document Fluent interface.
  */
 public function addReadFilePrivilege($roleName = 'guest')
 {
     $role = Opus_UserRole::fetchByName($roleName);
     if (is_null($role)) {
         $this->_log->err("Cannot add readFile privilege for non-existent role '{$role->getName()}' to document " . $this->getId() . ".");
         return $this;
     }
     $this->_log->warn("Warning: Setting all files readable for role '{$role->getName()}' (document " . $this->getId() . ")");
     $role->appendAccessDocument($this->getId());
     foreach ($this->_document->getFile() as $file) {
         $role->appendAccessFile($file->getId());
     }
     $role->store();
     return $this;
 }
Exemplo n.º 7
0
 /**
  * Run scheduling of jobs. All jobs currently in the queue get
  * processed and any new jobs get created in the jobs table.
  *
  * @return void
  */
 public function run()
 {
     $jobs = Opus_Job::getByLabels(array_keys($this->_workers), $this->_limit, Opus_Job::STATE_UNDEFINED);
     if (null !== $this->_logger) {
         $this->_logger->info('Found ' . count($jobs) . ' job(s)');
     }
     $runJobs = 0;
     foreach ($jobs as $job) {
         if (true === $this->consume($job)) {
             $runJobs++;
         } else {
             if (null !== $this->_logger) {
                 $this->_logger->warn('Job with ID ' . $job->getId() . ' failed.');
             }
         }
     }
     if (null !== $this->_logger) {
         $this->_logger->info('Processed ' . $runJobs . ' job(s).');
     }
 }
Exemplo n.º 8
0
 /**
  * for each file that is associated to the given document the fulltext and
  * path information are attached to the xml representation of the document model     
  *
  * @param DomDocument $modelXml
  * @param Opus_File $files
  * @param $docId
  * @return void
  */
 private function attachFulltextToXml($modelXml, $files, $docId)
 {
     $docXml = $modelXml->getElementsByTagName('Opus_Document')->item(0);
     if (is_null($docXml)) {
         $this->log->warn('An error occurred while attaching fulltext information to the xml for document with id ' . $docId);
         return;
     }
     // only consider files which are visible in frontdoor
     $files = array_filter($files, function ($file) {
         return $file->getVisibleInFrontdoor() === '1';
     });
     if (count($files) == 0) {
         $docXml->appendChild($modelXml->createElement('Has_Fulltext', 'false'));
         return;
     }
     $docXml->appendChild($modelXml->createElement('Has_Fulltext', 'true'));
     foreach ($files as $file) {
         $fulltext = '';
         try {
             $this->totalFileCount++;
             $fulltext = trim(iconv("UTF-8", "UTF-8//IGNORE", $this->getFileContent($file)));
         } catch (Opus_SolrSearch_Index_Exception $e) {
             $this->errorFileCount++;
             $this->log->err('An error occurred while getting fulltext data for document with id ' . $docId . ': ' . $e->getMessage());
         }
         if ($fulltext != '') {
             $element = $modelXml->createElement('Fulltext_Index');
             $element->appendChild($modelXml->createCDATASection($fulltext));
             $docXml->appendChild($element);
             $element = $modelXml->createElement('Fulltext_ID_Success');
             $element->appendChild($modelXml->createTextNode($this->getFulltextHash($file)));
             $docXml->appendChild($element);
         } else {
             $element = $modelXml->createElement('Fulltext_ID_Failure');
             $element->appendChild($modelXml->createTextNode($this->getFulltextHash($file)));
             $docXml->appendChild($element);
         }
     }
 }
Exemplo n.º 9
0
    protected function processAction()
    {
        $writer = new Zend_Log_Writer_Stream('php://stdout');
        $logger = new Zend_Log($writer);
        $settings = Settings::getInstance();
        try {
            $view = $this->application->getBootstrap()->getResource('view');
            $view->setScriptPath(APPLICATION_PATH . '/views/scripts');
            $adapter = Zend_Db_Table::getDefaultAdapter();
            $stmt = $adapter->query(<<<SQL
        SELECT id,
            (CASE WHEN awaits_from is null THEN created_at
           ELSE awaits_from END)  "awaits_from",
               customer_considering, closing_time FROM negotiations.negotiation_step WHERE closing_time is null AND created_at > '2013-08-01'::date
SQL
);
            //
            $toProcess = $stmt->fetchAll();
            $logger->info('Found ' . count($toProcess) . ' ongoing negotiations.');
            $errs = 0;
            $to_exp = 0;
            $now = date('Y-m-d', time());
            $model = new NegotiationStep();
            $adapter->query(<<<SQL
              ALTER TABLE negotiations.negotiation_step DISABLE TRIGGER negotiation_step_last_update_refresh
SQL
);
            foreach ($toProcess as $nid) {
                if ($nid['customer_considering'] == 'true' || $nid['customer_considering'] == 'TRUE' || $nid['customer_considering'] == 't') {
                    switch ('working') {
                        case 'working':
                            $date = @Logic_DateUtils::getDateByWorkingDays(5, $nid['awaits_from']) . ' 23:59:59';
                            break;
                        case 'calendar':
                            $date = date('Y-m-d', strtotime($nid['awaits_from'] . ' +' . 5 . ' days')) . ' 23:59:59';
                            break;
                        default:
                            throw new Exception('Misconfiguration in negotiations.settings table');
                    }
                } else {
                    switch ('working') {
                        case 'working':
                            $date = @Logic_DateUtils::getDateByWorkingDays(5, $nid['awaits_from']) . ' 23:59:59';
                            break;
                        case 'calendar':
                            $date = date('Y-m-d', strtotime($nid['awaits_from'] . ' +' . 5 . ' days')) . ' 23:59:59';
                            break;
                        default:
                            throw new Exception('Misconfiguration in negotiations.settings table');
                    }
                }
                $to_exp++;
                try {
                    $model->update(array('closing_time' => $date), 'id = \'' . $nid['id'] . '\'');
                } catch (Exception $e) {
                    $errs++;
                }
                echo $to_exp . "\t" . $errs . "\n";
            }
            $adapter->query(<<<SQL
              ALTER TABLE negotiations.negotiation_step ENABLE TRIGGER negotiation_step_last_update_refresh
SQL
);
            if ($errs == 0) {
                $logger->info('Successfuly expired all qualifying negotiations (' . $to_exp . ')');
            } else {
                $logger->warn('Negotiations qualifying for expiration processed with errors. ' . $errs . '/' . count($to_exp) . ' failed. Check previous log messages for details.');
            }
        } catch (Exception $e) {
            $logger->crit($e->getMessage());
        }
        $logger->info('Script executed succesfully');
        exit(0);
    }
 /**
  * Prio 4: Warning: warning conditions
  *
  * @param string $msg
  * @param EngineBlock_Log_Message_AdditionalInfo $additionalInfo
  * @return void
  */
 public function warn($msg, $additionalInfo = null)
 {
     $this->_setAdditionalEventItems($additionalInfo);
     parent::warn($msg);
 }
Exemplo n.º 11
0
 protected function _handlePost()
 {
     if (count($_GET) == 1) {
         $arrayKeys = array_keys($_GET);
         $requestParameters = $this->_decodeRequestParameters($arrayKeys[0]);
     } else {
         $requestParameters = $this->_getRequestParameters();
     }
     if ($this->_logger instanceof Zend_Log) {
         $this->_logger->debug(__METHOD__ . '::' . __LINE__ . ' REQUEST ' . print_r($requestParameters, true));
     }
     $userAgent = $this->_request->getServer('HTTP_USER_AGENT', $requestParameters['deviceType']);
     $policyKey = $this->_request->getServer('HTTP_X_MS_POLICYKEY');
     if ($this->_logger instanceof Zend_Log) {
         $this->_logger->debug(__METHOD__ . '::' . __LINE__ . " Agent: {$userAgent}  PolicyKey: {$policyKey} ASVersion: {$requestParameters['protocolVersion']} Command: {$requestParameters['command']}");
     }
     $className = 'Syncope_Command_' . $requestParameters['command'];
     if (!class_exists($className)) {
         throw new Syncope_Exception_CommandNotFound('unsupported command ' . $requestParameters['command']);
     }
     // get user device
     $device = $this->_getUserDevice($this->_userId, $requestParameters['deviceId'], $requestParameters['deviceType'], $userAgent, $requestParameters['protocolVersion']);
     if ($this->_request->getServer('CONTENT_TYPE') == 'application/vnd.ms-sync.wbxml') {
         // decode wbxml request
         try {
             $decoder = new Wbxml_Decoder($this->_body);
             $requestBody = $decoder->decode();
             if ($this->_logger instanceof Zend_Log) {
                 $this->_logger->debug(__METHOD__ . '::' . __LINE__ . " xml request: " . $requestBody->saveXML());
             }
         } catch (Wbxml_Exception_UnexpectedEndOfFile $e) {
             $requestBody = NULL;
         }
     } else {
         $requestBody = $this->_body;
     }
     try {
         $command = new $className($requestBody, $device, $policyKey);
         $command->handle();
         if (PHP_SAPI !== 'cli') {
             header("MS-Server-ActiveSync: 8.3");
         }
         $response = $command->getResponse();
     } catch (Syncope_Exception_PolicyKeyMissing $sepkm) {
         if ($this->_logger instanceof Zend_Log) {
             $this->_logger->warn(__METHOD__ . '::' . __LINE__ . " X-MS-POLICYKEY missing (" . $_command . ')');
         }
         header("HTTP/1.1 400 header X-MS-POLICYKEY not found");
         return;
     } catch (Syncope_Exception_ProvisioningNeeded $sepn) {
         if ($this->_logger instanceof Zend_Log) {
             $this->_logger->info(__METHOD__ . '::' . __LINE__ . " provisioning needed");
         }
         header("HTTP/1.1 449 Retry after sending a PROVISION command");
         return;
     } catch (Exception $e) {
         if ($this->_logger instanceof Zend_Log) {
             $this->_logger->crit(__METHOD__ . '::' . __LINE__ . " unexpected exception occured: " . get_class($e));
         }
         if ($this->_logger instanceof Zend_Log) {
             $this->_logger->crit(__METHOD__ . '::' . __LINE__ . " exception message: " . $e->getMessage());
         }
         if ($this->_logger instanceof Zend_Log) {
             $this->_logger->info(__METHOD__ . '::' . __LINE__ . " " . $e->getTraceAsString());
         }
         header("HTTP/1.1 500 Internal server error");
         return;
     }
     if ($response instanceof DOMDocument) {
         if ($this->_logger instanceof Zend_Log) {
             $this->_logger->debug(__METHOD__ . '::' . __LINE__ . " xml response: " . $response->saveXML());
         }
         $outputStream = fopen("php://temp", 'r+');
         $encoder = new Wbxml_Encoder($outputStream, 'UTF-8', 3);
         $encoder->encode($response);
         header("Content-Type: application/vnd.ms-sync.wbxml");
         rewind($outputStream);
         fpassthru($outputStream);
     }
 }
Exemplo n.º 12
0
 /**
  * Setup Logging
  *
  * @throws Exception If logging file couldn't be opened.
  * @return void
  *
  */
 protected function _initLogging()
 {
     $this->bootstrap('Configuration');
     $config = $this->getResource('Configuration');
     // Detect if running in CGI environment.
     $logFilename = 'opus.log';
     if (!array_key_exists('SERVER_PROTOCOL', $_SERVER) and !array_key_exists('REQUEST_METHOD', $_SERVER)) {
         $logFilename = "opus-console.log";
     }
     $logfilePath = $config->workspacePath . '/log/' . $logFilename;
     $logfile = @fopen($logfilePath, 'a', false);
     if ($logfile === false) {
         // TODO use Opus exception
         throw new Exception('Failed to open logging file:' . $logfilePath);
     }
     $GLOBALS['id_string'] = uniqid();
     // Write ID string to global variables, so we can identify/match individual runs.
     $format = '%timestamp% %priorityName% (%priority%, ID ' . $GLOBALS['id_string'] . '): %message%' . PHP_EOL;
     $formatter = new Zend_Log_Formatter_Simple($format);
     $writer = new Zend_Log_Writer_Stream($logfile);
     $writer->setFormatter($formatter);
     $logger = new Zend_Log($writer);
     $logLevelName = 'INFO';
     $logLevelNotConfigured = false;
     if (isset($config->log->level)) {
         $logLevelName = strtoupper($config->log->level);
     } else {
         $logLevelNotConfigured = true;
     }
     $zendLogRefl = new ReflectionClass('Zend_Log');
     $invalidLogLevel = false;
     $logLevel = $zendLogRefl->getConstant($logLevelName);
     if (empty($logLevel)) {
         $logLevel = Zend_Log::INFO;
         $invalidLogLevel = true;
     }
     // filter log output
     $priorityFilter = new Zend_Log_Filter_Priority($logLevel);
     Zend_Registry::set('LOG_LEVEL', $logLevel);
     $logger->addFilter($priorityFilter);
     if ($logLevelNotConfigured) {
         $logger->warn('Log level not configured, using default \'' . $logLevelName . '\'.');
     }
     if ($invalidLogLevel) {
         $logger->err('Invalid log level \'' . $logLevelName . '\' configured.');
     }
     Zend_Registry::set('Zend_Log', $logger);
     $logger->debug('Logging initialized');
     return $logger;
 }
Exemplo n.º 13
0
 public static function warn($message)
 {
     self::$_logger->warn($message);
 }
Exemplo n.º 14
0
if (count($argv) != 2) {
    echo "usage: " . __FILE__ . " logfile.log\n";
    exit(-1);
}
echo "\nmigrating classification subjects -- can take a while";
// Initialize logger.
$logfileName = $argv[1];
$logfile = @fopen($logfileName, 'a', false);
$writer = new Zend_Log_Writer_Stream($logfile);
$formatter = new Zend_Log_Formatter_Simple('%timestamp% %priorityName%: %message%' . PHP_EOL);
$writer->setFormatter($formatter);
$logger = new Zend_Log($writer);
// load collections (and check existence)
$mscRole = Opus_CollectionRole::fetchByName('msc');
if (!is_object($mscRole)) {
    $logger->warn("MSC collection does not exist.  Cannot migrate SubjectMSC.");
}
$ddcRole = Opus_CollectionRole::fetchByName('ddc');
if (!is_object($ddcRole)) {
    $logger->warn("DDC collection does not exist.  Cannot migrate SubjectDDC.");
}
// create enrichment keys (if neccessary)
createEnrichmentKey('MigrateSubjectMSC');
createEnrichmentKey('MigrateSubjectDDC');
// Iterate over all documents.
$docFinder = new Opus_DocumentFinder();
$changedDocumentIds = array();
foreach ($docFinder->ids() as $docId) {
    $doc = null;
    try {
        $doc = new Opus_Document($docId);