当前位置: 首页>>代码示例>>PHP>>正文


PHP log::writeln方法代码示例

本文整理汇总了PHP中log::writeln方法的典型用法代码示例。如果您正苦于以下问题:PHP log::writeln方法的具体用法?PHP log::writeln怎么用?PHP log::writeln使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在log的用法示例。


在下文中一共展示了log::writeln方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: saveLog

 public function saveLog($xml)
 {
     // !!!
     // @todo Вот не знаю стоит ли тут делать так, или все же легче вызвать self::initReqXml(); но там у нас сессия инициализируется
     $this->_clientXml = new DOMDocument();
     libxml_use_internal_errors(true);
     if (!$this->_clientXml->loadXML($xml)) {
         $this->_debug = 1;
         $xe_levels = array(LIBXML_ERR_WARNING => 'WARNING', LIBXML_ERR_ERROR => 'ERROR', LIBXML_ERR_FATAL => 'FATAL');
         foreach (libxml_get_errors() as $xe) {
             $err .= $xe_levels[$xe->level] . ": (line: {$xe->line}, column: {$xe->column}): {$xe->message}";
         }
         libxml_clear_errors();
         $this->error(EXTERNAL_ERR_WRONG_REQ, $err);
     }
     $ns_name = basename($this->_clientXml->documentElement->getAttribute('xmlns:f'));
     if ($ns_name == '') {
         $ns_name = basename($this->_clientXml->documentElement->getAttribute('xmlns:hh'));
     } else {
         $ns_name = 'freetray';
     }
     if ($ns_name == '') {
         $ns_name = 'other';
     }
     $log = new log("external/{$ns_name}-%d%m%Y.log");
     $log->writeln('--------------' . getRemoteIP() . '--------------');
     $log->writeln($xml);
 }
开发者ID:kapai69,项目名称:fl-ru-damp,代码行数:28,代码来源:server.php

示例2: payment

 public function payment($sum)
 {
     // На бете альфе включаем дебаг режим
     if (!is_release()) {
         //$sum = 0.1;// @debug
         $this->api->setDebug(true);
     }
     $result = $this->api->requestPayment(round((double) $sum, 2), $this->account->id);
     if ($result['status'] == API_Webmoney::STATUS_SUCCESS) {
         $process = $this->api->processPayment($this->api->merchant_transaction_id, $result['processor_transaction_id']);
         switch ($process['status']) {
             case API_Webmoney::STATUS_PAYMENT_PROGRESS:
             case API_Webmoney::STATUS_PAYMENT_SUCCESS:
                 // Зачисляем деньги на бете/альфе
                 //                    if(!is_release()) {
                 //                        $paymentDateTime = date('d.m.Y H:i');
                 //                        $orderNumber     = rand(1, 99999999);
                 //                        $descr = "WebMoney с кошелька {$this->data['wallet']} сумма - {$sum}, обработан {$paymentDateTime}, номер покупки - $orderNumber";
                 //
                 //                        $this->account->deposit($op_id, $this->account->id, $sum, $descr, 3, $sum, 12);
                 //                    }
                 return true;
                 break;
             case API_Webmoney::STATUS_PAYMENT_FAIL:
                 ob_start();
                 var_dump($result);
                 var_dump($process);
                 $content = ob_get_clean();
                 $this->log->writeln("FAIL Payment:\naccount:{$this->account->id}\n");
                 $this->log->write("Request:\n " . $this->api->last_request->getBody());
                 $this->log->write("Result:\n {$content}");
                 return false;
                 break;
                 // Отложить платеж на пол часа
                 // @todo придумать как отложить запрос на потом
                 //case API_Webmoney::STATUS_PAYMENT_PROCESS:
             // Отложить платеж на пол часа
             // @todo придумать как отложить запрос на потом
             //case API_Webmoney::STATUS_PAYMENT_PROCESS:
             default:
                 return;
                 break;
         }
     } else {
         ob_start();
         var_dump($result);
         $content = ob_get_clean();
         $this->log->writeln("FAIL Payment:\naccount:{$this->account->id}\n");
         $this->log->write("Request:\n " . $this->api->last_request->getBody());
         $this->log->write("Result:\n {$content}");
         return false;
     }
 }
开发者ID:kapai69,项目名称:fl-ru-damp,代码行数:53,代码来源:walletWebmoney.php

示例3: cron

 /**
  * Берет список записей и генерирует документы
  */
 public function cron()
 {
     $queue = $this->getList();
     require_once ABS_PATH . '/classes/log.php';
     $log = new log('docgen_cron/' . SERVER . '-%d%m%Y.log', 'a', "%d.%m.%Y %H:%M:%S: ");
     foreach ($queue as $item) {
         try {
             $docGenClass = $this->getClass($item['class_name'], $item['class_params']);
             $docGenClass->setData(mb_unserialize($item['fields']));
             $docGenClass->setDocName($item['type'], $item['original_name']);
             $docGenClass->beforeGenerate();
             if ($docGenClass->isExcel($item['type'])) {
                 $ok = $docGenClass->generateExcel($item['type']);
             } else {
                 $ok = $docGenClass->generate($item['type']);
             }
             if ($ok) {
                 $this->removeItem($item['id']);
             } else {
                 $this->incrementTry($item['id']);
             }
         } catch (Exception $e) {
             $log->writeln(sprintf("id = %s: %s", $item['id'], iconv('CP1251', 'UTF-8', $e->getMessage())));
             $this->incrementTry($item['id']);
         }
     }
 }
开发者ID:Nikitian,项目名称:fl-ru-damp,代码行数:30,代码来源:DocGenQueue.php

示例4: _log

 /**
  * Пишет сообщение в лог.
  * @param string $msg   сообщение.
  */
 private function _log($msg)
 {
     if (!$this->log) {
         return;
     }
     $this->log->writeln($msg);
 }
开发者ID:Nikitian,项目名称:fl-ru-damp,代码行数:11,代码来源:pmpay.php

示例5: _log

 private function _log($message, $type = 'info')
 {
     if (!$this->_log) {
         return;
     }
     $msg = date("Y-m-d H:i:s") . " [{$type}] " . $message;
     $this->_log->writeln($msg);
 }
开发者ID:Nikitian,项目名称:fl-ru-damp,代码行数:8,代码来源:search_parser.php

示例6: analyze

 /**
  * Берем таблицы, последний анализ, которых был ранее чем analyze_min_age секунд назад
  * или количество изменненных строк > analyze_changed_factor * кол-во строк.
  * Сначала идут по времени последнего анализа.
  * Вопрос в том, что если сработал обычный автовакуум, то в autovacuum_log статистика не поменяется,
  * т.е. не будет известно сколько строк в реальности изменилось с последнего анализа.
  * Решение: не принимать во внимание, т.е. просто соблюдаем условия выше. Может случиться "лишний" анализ, не беда.
  */
 public function analyze($db_alias, $mode = self::MODE_ANALYZE)
 {
     $cfg = $this->_config[$mode];
     $log = new log($cfg['log_file'], 'w');
     // !!! SERVER добавить (для альфы/беты).
     $DB = new DB($db_alias);
     $log->linePrefix = $this->_config['log_line_prefix'];
     $log->writeln('Получаем список таблиц');
     $last_av_col = 'COALESCE(maintenance.max(' . ($mode == self::MODE_ANALYZE ? 'pt.last_analyze, pt.last_autoanalyze, ' : '') . "pt.last_vacuum, pt.last_autovacuum), 'epoch')";
     $sql = "\n          WITH w_stat as (\n            SELECT ts.*, pt.*, ts.relid IS NULL as _is_new, {$last_av_col} as _last_av\n              FROM pg_stat_user_tables pt\n            LEFT JOIN\n              maintenance.table_stat ts\n                ON ts.relid = pt.relid\n             WHERE pt.schemaname = 'public'\n               AND pt.n_live_tup + pt.n_dead_tup > 0\n          )\n          (\n            (SELECT *, 0 as ord, 0.00 as ord2 FROM w_stat WHERE (_is_new OR _last_av + interval '?i seconds' <= now()))\n            UNION ALL\n            (SELECT *, 1, tup_factor FROM w_stat WHERE tup_factor >= ?f)\n          )\n          ORDER BY ord, ord2 DESC, _last_av\n        ";
     $tbls = $DB->rows($sql, $cfg['min_age'], $cfg['changed_factor']);
     $acnt = 0;
     $log->writeln(count($tbls) . ' таблиц');
     foreach ($tbls as $t) {
         if ($log->getTotalTime(null) >= $cfg['max_duration']) {
             $log->writeln('Время истекло.');
             break;
         }
         $DB->query(($mode == self::MODE_VACUUM ? 'VACUUM ' : 'ANALYZE') . " VERBOSE {$t['relname']}");
         $cmpls[(int) ($t['_is_new'] == 't')][] = $t['relid'];
         $log->writeln(pg_last_notice(DB::$connections[$db_alias]));
         ++$acnt;
     }
     // Обновляем статистику.
     if ($cmpls[0]) {
         $cols = $this->_mt_cols;
         unset($cols[0], $cols[1]);
         $lcols = implode(',', $cols);
         $rcols = 'pt.' . implode(', pt.', $cols);
         $sql = "UPDATE maintenance.table_stat ts SET ({$lcols}) = ({$rcols}) FROM pg_stat_user_tables pt WHERE pt.relid IN (?l) AND ts.relid = pt.relid";
         $DB->query($sql, $cmpls[0]);
     }
     if ($cmpls[1]) {
         $cols = implode(',', $this->_mt_cols);
         $sql = "INSERT INTO maintenance.table_stat ({$cols}) SELECT {$cols} FROM pg_stat_user_tables WHERE relid IN (?l)";
         $DB->query($sql, $cmpls[1]);
     }
     // Удаляем лишние таблицы, типа catalog_positions2 (создаются/удаляются автоматом)
     $DB->query('DELETE FROM maintenance.table_stat ts WHERE NOT EXISTS (SELECT 1 FROM pg_stat_user_tables WHERE relid = ts.relid)');
     $log->writeln("Обработано {$acnt} таблиц");
 }
开发者ID:kapai69,项目名称:fl-ru-damp,代码行数:49,代码来源:maintenance.php

示例7: get_files

 /**
  * Копирует массив файлов из WebDav в локальную файловую систему
  * Формат входных данных array("remotepath" => "localpath").
  * 
  * @param type $filelist
  *
  * @return bool
  */
 public function get_files($filelist)
 {
     foreach ($this->_wdcs as $wdc) {
         if ($ok = $this->_connect($wdc)) {
             $ok = $wdc->mget($filelist);
         }
         if (!$ok) {
             $filelist = implode(', ', array_map(function ($v, $k) {
                 return sprintf('from:%s to:%s', $k, $v);
             }, $filelist, array_keys($filelist)));
             $this->_log->writeln("error: could not get files {$filelist}, server: {$wdc->_server}");
         } else {
             return true;
         }
     }
     return false;
 }
开发者ID:kapai69,项目名称:fl-ru-damp,代码行数:25,代码来源:webdav_proxy.php

示例8: parseFile

 /**
  * Парсим реестр и генерируем счет-фактуры.
  * 
  * @param type $filename
  */
 public function parseFile($filename)
 {
     //@todo: это не красиво :(
     ini_set('max_execution_time', 300);
     //ini_set('memory_limit', '512M');
     $uri = WDCPREFIX_LOCAL . $this->path . $filename;
     $list = array();
     $ids = array();
     $handle = fopen($uri, 'r');
     while (($data = fgetcsv($handle, 1000, ';')) !== false) {
         if ($data[0] == 'order_id' || count($data) != 7) {
             continue;
         }
         //order_id;sf_num;sf_date;sf_summa;pp_num;pp_date;pp_type
         $res = array('id' => $this->getOrderId($data[0]), 'sf_num' => $data[1], 'sf_date' => $data[2], 'sf_summa' => $data[3], 'pp_num' => $data[4], 'pp_date' => $data[5], 'pp_type' => $data[6]);
         $ids[] = $res['id'];
         $list[] = $res;
     }
     fclose($handle);
     if ($list) {
         $reserveModel = ReservesModelFactory::getInstance(ReservesModelFactory::TYPE_TSERVICE_ORDER);
         $empData = $reserveModel->getEmpByReserveIds($ids);
         foreach ($list as $key => $data) {
             if (!isset($empData[$data['id']])) {
                 continue;
             }
             $data['employer']['login'] = $empData[$data['id']]['login'];
             $data['employer']['uid'] = $empData[$data['id']]['uid'];
             $reserveModel->getReserve($ids[$key]);
             $data['employer']['reqv'] = $reserveModel->getEmpReqv();
             try {
                 $doc = new DocGenReserves($data);
                 $doc->generateFactura();
             } catch (Exception $e) {
                 require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/log.php';
                 $log = new log('reserves_docs/' . SERVER . '-%d%m%Y.log', 'a', '%d.%m.%Y %H:%M:%S: ');
                 $log->writeln(sprintf('Order Id = %s: %s', $data['id'], iconv('CP1251', 'UTF-8', $e->getMessage())));
             }
         }
     }
 }
开发者ID:kapai69,项目名称:fl-ru-damp,代码行数:46,代码来源:ReservesAdminReestrFacturaModel.php

示例9: payment

 /**
  * Автооплата услуги
  *
  * @param $sum
  * @return bool|mixed
  */
 public function payment($sum)
 {
     $this->createOrder($sum);
     $this->api->getAccessData('autopay');
     $result = $this->api->register($sum, $this->orderNumber, $this->account->id);
     if ($result['orderId'] != '') {
         walletAlpha::updateOrder($this->orderNumber, array('order_id' => $result['orderId'], 'state' => walletAlpha::STATE_NEW));
         $payment = $this->api->paymentOrderBinding($result['orderId']);
         switch ($payment['errorCode']) {
             case API_AlphaBank::STATUS_SUCCESS:
                 $status = $this->api->getOrderStatus($result['orderId']);
                 $update = array('pan' => $status['Pan'], 'expiration' => $status['expiration'], 'cardholder_name' => $status['cardholderName'], 'ip' => $status['Ip'], 'binding_id' => Wallet::des()->encrypt($status['bindingId']));
                 $update['state'] = $this->deposit($this->account, $this->account->id, $status, $this->data['wallet'], $this->orderNumber, $sum);
                 $this->updateOrder($this->orderNumber, $update);
                 break;
             default:
                 // Ошибка оплаты
                 ob_start();
                 var_dump($result);
                 var_dump($payment);
                 $content = ob_get_clean();
                 $this->log->writeln("FAIL Payment:\naccount:{$this->account->id}\n");
                 $this->log->write("Request:\n " . $this->api->last_request->getBody());
                 $this->log->write("Result:\n {$content}");
                 return false;
                 break;
         }
     } else {
         ob_start();
         var_dump($result);
         $content = ob_get_clean();
         $this->log->writeln("FAIL Payment:\naccount:{$this->account->id}\n");
         $this->log->write("Request:\n " . $this->api->last_request->getBody());
         $this->log->write("Result:\n {$content}");
         return false;
         //error
     }
 }
开发者ID:Nikitian,项目名称:fl-ru-damp,代码行数:44,代码来源:walletAlpha.php

示例10: cron

 /**
  * @deprecated Не использовать. Выплата делается в очереди PGQ там же и повторяется
  * 
  * Крон переодического опроса API сервиса выплат
  * по сделкам в статусе ожидания выплаты
  * 
  * @todo: документация API рекомендует опрашивать с интервалом мах 30 минут
  * @todo: возможно не лучшее место для этого?
  * 
  * @param type $limit - количество сделок обрабатываемых за запуск
  * @return int - количество успешно обработанных сделок
  */
 public function cron($limit = 10)
 {
     return false;
     $reservesModel = new ReservesModel();
     $reserveDataList = $reservesModel->getReservesWithStatusPayByService(ReservesModel::SUBSTATUS_INPROGRESS, $limit);
     $cnt = 0;
     if ($reserveDataList) {
         $log = new log('reserves_docs/' . SERVER . '-%d%m%Y.log', 'a', "%d.%m.%Y %H:%M:%S: ");
         foreach ($reserveDataList as $reserveData) {
             $reserveInstance = ReservesModelFactory::getInstance($reserveData['type']);
             $reserveInstance->setReserveData($reserveData);
             $status = $this->payout($reserveInstance, $reserveData['pay_type']);
             $is_done = $reserveInstance->changePayStatus($status);
             if ($is_done && $reserveInstance->isClosed()) {
                 $cnt++;
                 $orderData = array('id' => $reserveData['src_id'], 'reserve_data' => $reserveInstance->getReserveData(), 'reserve' => $reserveInstance, 'employer' => array('login' => $reserveData['emp_login'], 'email' => $reserveData['emp_email']));
                 try {
                     $doc = new DocGenReserves($orderData);
                     $doc->generateActServiceEmp();
                     $doc->generateAgentReport();
                 } catch (Exception $e) {
                     $log->writeln(sprintf("Order Id = %s: %s", $orderData['id'], iconv('CP1251', 'UTF-8', $e->getMessage())));
                 }
             }
         }
     }
     return $cnt;
 }
开发者ID:Nikitian,项目名称:fl-ru-damp,代码行数:40,代码来源:ReservesPayout.php

示例11: process_event

 public function process_event(&$event)
 {
     $message = false;
     $cid = (string) @$event->data['cid'];
     try {
         $options = array('cid' => $cid, 'sc' => 'start', 'cd1' => $cid);
         if (isset($event->data['uid']) && $event->data['uid'] > 0) {
             $options['cd5'] = $event->data['uid'];
         }
         unset($event->data['uid']);
         $ga = StatisticFactory::getInstance('GA', $options);
         switch ($event->type) {
             case 'service_payed':
                 $is_emp = (bool) @$event->data['is_emp'];
                 $label = (string) @$event->data['label'];
                 $ammount = floatval(@$event->data['ammount']);
                 $ga->serviceWasPayed($is_emp, $label, $ammount, $cid);
                 break;
             case 'project_answer':
                 $project_kind_ident = (string) @$event->data['project_kind_ident'];
                 $offer_count = (int) @$event->data['offer_count'];
                 $is_pro = (bool) @$event->data['is_pro'];
                 $offer_id = @$event->data['offer_id'];
                 $ga->projectAnwer($cid, $project_kind_ident, $offer_count, $is_pro);
                 break;
             case 'newsletter_projects_open_hit':
                 $type = (int) @$event->data['type'];
                 $label = (string) @$event->data['label'];
                 $timestamp = (int) @$event->data['timestamp'];
                 if ($type == 1) {
                     $ga->newsletterNewProjectsOpenHitEmp($label, $timestamp);
                 } else {
                     $ga->newsletterNewProjectsOpenHitFrl($label, $timestamp);
                 }
                 break;
                 //Обрабатываем методы которые поддерживает $ga инстанс
                 //Обычно это типовые методы типа GA::event
             //Обрабатываем методы которые поддерживает $ga инстанс
             //Обычно это типовые методы типа GA::event
             default:
                 unset($event->data['cid']);
                 $ga->call($event->type, $event->data);
                 break;
         }
         //Запись событий в лог
         if (is_object($ga) && method_exists($ga, 'getLastRequest')) {
             require_once ABS_PATH . '/classes/log.php';
             $log = new log('statistic/' . SERVER . '-%d%m%Y.log');
             $suffix = '';
             if (isset($offer_id) && !empty($offer_id)) {
                 $suffix = " offer_id={$offer_id}";
             }
             $log->writeln(date('d.m.Y H:i:s') . ' - ' . $ga->getLastRequest()->getBaseUrlWithQuery() . $suffix);
         }
     } catch (Exception $e) {
         $message = 'Ошибка: ' . $e->getMessage();
     }
     if ($message) {
         $data = '';
         foreach ($event->data as $key => $value) {
             $data .= $key . '=' . $value . '; ';
         }
         $log_message = sprintf(self::LOG_FORMAT, $event->type, $data, $message);
         $this->log->notice(iconv('CP1251', 'UTF-8', $log_message));
         //Повторить через 60 сек
         //$event->retry_delay = 60;
         //return PGQ_EVENT_RETRY;
     }
     return PGQ_EVENT_OK;
 }
开发者ID:kapai69,项目名称:fl-ru-damp,代码行数:70,代码来源:statistic.php

示例12: create

 /**
  * @todo: рекомендуется не использовать замена см addServiceAndCheckout
  * 
  * Создаем запись в "Списке услуг"
  * 
  * @param int  $op_code     ИД операции по которой создаем запись (@see table op_codes)
  * @param int  $auto        Автопродление для этого типа услуг
  * @param bool $clean_queue Очистить очередь
  *
  * @return int Возвращает ИД созданной услуги
  */
 public function create($op_code, $auto = 0, $clean_queue = true)
 {
     //Чистим корзину заказов
     if ($clean_queue) {
         $this->cancelAllNewAndReserved();
     }
     //Эти приготовления делаются без учета скидки и
     //только потом она будет использована если имеется
     if (in_array($op_code, self::getOpcodesByAutopayed('pro'))) {
         // Определяем автоматическую подставку автопро если не пользовались услугами долгое время
         $this->loadMainData();
         if (isset($this->list_types_services['notused']['pro'])) {
             $auto = 1;
         }
     }
     //Пробуем получить скидку
     $op_code = $this->getDiscountOpCode($op_code);
     //Подготовка к покупке
     $options = $this->prepareOperationCode($op_code);
     $log = new log('billing/create-' . SERVER . '-%d%m%Y.log', 'a', "%d.%m.%Y %H:%M:%S:\r\n");
     $log->writeln("create order ({$op_code}, {$auto})");
     $log->write("login:{$this->user['login']}, uid:{$this->user['uid']}, account:{$this->acc['id']}, acc_sum:{$this->acc['sum']}\r\n");
     ob_start();
     var_dump($options);
     $out = ob_get_clean();
     $log->write($out);
     $log->write("\r\n--------------------\r\n\r\n");
     if (empty($options)) {
         return false;
     }
     $data = array('uid' => $this->user['uid'], 'op_code' => $op_code, 'auto' => $auto == 1 ? true : false);
     $insert = array_merge($data, $options);
     return $this->_db->insert('bill_queue', $insert, 'id');
 }
开发者ID:kapai69,项目名称:fl-ru-damp,代码行数:45,代码来源:billing.php

示例13: setIsAllowed

 /**
  * Разрешить отправку сообщений.
  * 
  * @global type $DB
  *
  * @param type $to_id
  * @param type $from_id
  *
  * @return bool
  */
 public static function setIsAllowed($to_id, $from_id, $stop_check = false)
 {
     global $DB;
     if (!$stop_check && self::_isAllowed($to_id, $from_id)) {
         return true;
     }
     $DB->val('
        INSERT INTO ' . self::TABLE_ALLOWED . ' (to_id, from_id) 
        SELECT ?i, ?i WHERE NOT EXISTS(SELECT 1 FROM ' . self::TABLE_ALLOWED . '
        WHERE to_id = ?i AND from_id = ?i LIMIT 1);
     ', $to_id, $from_id, $to_id, $from_id);
     $mem = new memBuff();
     $cache_tag_key = sprintf(self::CACHE_TAG_IS_ALLOWED, $from_id);
     $mem->delete($cache_tag_key);
     if (is_beta()) {
         require_once ABS_PATH . '/classes/log.php';
         $log = new log('debug/0029319-%d%m%Y.log');
         $log->writeln('----- ' . date('d.m.Y H:i:s'));
         $log->writeln("to_id = {$to_id}, from_id = {$from_id}");
     }
 }
开发者ID:kapai69,项目名称:fl-ru-damp,代码行数:31,代码来源:messages.php

示例14: refund

 /**
  * Возврат денежных средств.
  * 
  * @global type $DB
  *
  * @param type $payment_id ИД операции в paymaster
  *
  * @return bool
  */
 public function refund($payment_id = null, $stage = null, $debug = false)
 {
     global $DB;
     $log = new log('pmpay/refundPayments-%d%m%Y.log', 'a', '%d.%m.%Y %H:%M:%S : ');
     $log->writeln("payment_id = [{$payment_id}], stage = [{$stage}], debug = [{$debug}]");
     if (!$payment_id) {
         return false;
     }
     require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/pmpay.php';
     require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/exrates.php';
     $pmpay = new pmpay();
     // Возврат осуществляется только при резервировании через WMR
     $sql = 'SELECT * FROM sbr_stages_payouts WHERE stage_id = ?i AND user_id = ?i AND is_refund IS NULL;';
     $row = $DB->row($sql, $stage->id, $stage->sbr->emp_id);
     // Возврат осуществляется только для работодателей
     if ($row) {
         if (DEBUG) {
             $log->writeln('debug_mode = ON');
             $pmpay->setDebugUrl($GLOBALS['host'] . '/norisk2/admin/pm-server-test.php');
         }
         $operation = (array) $pmpay->refundPayments($payment_id, $row['credit_sum']);
         if ($operation && $operation['Status'] != 'FAILURE' && $operation['ErrorCode'] == 0) {
             if ($operation['Status'] == 'EXECUTING' || $operation['Status'] == 'PENDING') {
                 $update = array('is_refund' => false, 'refund_id' => $operation['RefundID']);
                 $this->refundStatusUpdate($update, $row['id']);
             } elseif ($operation['Status'] == 'SUCCESS') {
                 $update = array('is_refund' => true, 'refund_id' => $operation['RefundID'], 'completed' => 'NOW()');
                 $this->refundStatusUpdate($update, $row['id']);
             } else {
                 $update = array('is_refund' => null, 'refund_id' => $operation['RefundID']);
                 $this->refundStatusUpdate($update, $row['id']);
             }
         }
     } else {
         $log = new log('pmpay/refundPayments-%d%m%Y.log', 'a', '%d.%m.%Y %H:%M:%S : ');
         $log->writeln("Ошибка выдачи SQL -- [{$DB->sql}].");
     }
 }
开发者ID:kapai69,项目名称:fl-ru-damp,代码行数:47,代码来源:sbr_adm.php

示例15: __destruct

 /**
  * Деструктор. Закрывает открытую транзакцию и записывает в файл(ы) debug информацию.
  *
  */
 public function __destruct()
 {
     --self::$objects;
     if ($this->debugLog) {
         $log = new log("db/" . $this->alias . "/debug/" . $this->debug);
         for ($i = 0; $i < count($this->debugLog); $i++) {
             $log->writeln($this->debugLog[$i]['text']);
         }
     }
     $log = new log("db/" . $this->alias . '/' . date('Y-m-d') . ".log");
     if ($this->log) {
         $log->writeln($this->log);
     }
     if ($this->_transaction) {
         $rollback = false;
         $xstat = pg_transaction_status($this->_transaction);
         $xcodes = array(PGSQL_TRANSACTION_UNKNOWN => 'PGSQL_TRANSACTION_UNKNOWN', PGSQL_TRANSACTION_IDLE => 'PGSQL_TRANSACTION_IDLE', PGSQL_TRANSACTION_INTRANS => 'PGSQL_TRANSACTION_INTRANS', PGSQL_TRANSACTION_INERROR => 'PGSQL_TRANSACTION_INERROR', PGSQL_TRANSACTION_ACTIVE => 'PGSQL_TRANSACTION_ACTIVE');
         switch ($xstat) {
             case PGSQL_TRANSACTION_INTRANS:
             case PGSQL_TRANSACTION_INERROR:
             case PGSQL_TRANSACTION_ACTIVE:
                 $rollback = true;
                 break;
         }
         if ($rollback) {
             $err = "Transaction status is BAD and it rollbacked: {$xcodes[$xstat]}, name=" . $this->alias;
             $this->rollback();
         } else {
             $err = "Transaction counter is BAD on DESTRUCT: status {$xcodes[$xstat]}";
             $this->_transaction = NULL;
         }
         $this->err($err);
     }
     if (!self::$objects) {
         setLastUserAction();
         if (DB::$_stby_log) {
             // можно убрать, отладочное.
             $stby_db = new DB('stat');
             setlocale(LC_ALL, 'en_US.UTF-8');
             foreach (DB::$_stby_log as $key => $val) {
                 list($val['day'], $val['real_mask'], $val['opts']) = explode('=', $key);
                 $sql = "\n                      UPDATE stby_log2\n                         SET master_cnt = master_cnt + ?i, standby_cnt = standby_cnt + ?i,\n                             master_time = master_time + interval ?, standby_time = standby_time + ?, ro_errors_cnt = ro_errors_cnt + ?i\n                       WHERE day = ? AND opts = ? AND real_mask = ?i\n                    ";
                 $res = $stby_db->query($sql, (int) $val['master_cnt'], (int) $val['standby_cnt'], (double) $val['master_time'] . ' seconds', (double) $val['standby_time'] . ' seconds', (int) $val['ro_errors_cnt'], $val['day'], $val['opts'], (int) $val['real_mask']);
                 if (!pg_affected_rows($res)) {
                     $sql = "\n                          INSERT INTO stby_log2 (master_cnt, standby_cnt, master_time, standby_time, ro_errors_cnt, day, opts, real_mask)\n                          VALUES (?i, ?i, ?, ?, ?i, ?, ?, ?i)\n                        ";
                     $stby_db->query($sql, (int) $val['master_cnt'], (int) $val['standby_cnt'], (double) $val['master_time'] . ' seconds', (double) $val['standby_time'] . ' seconds', (int) $val['ro_errors_cnt'], $val['day'], $val['opts'], (int) $val['real_mask']);
                 }
             }
         }
         DB::$_stby_log = array();
     }
 }
开发者ID:Nikitian,项目名称:fl-ru-damp,代码行数:56,代码来源:DB.php


注:本文中的log::writeln方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。