public static function injectTo(Di $di) { $di->setShared('logger', function () use($di) { $logger = new Multiple(); $config = $di->get('config')['loggers']; foreach ($config as $logConfig) { $adapter = $logConfig['adapter']; $options = isset($logConfig['options']) ? $logConfig['options'] : null; $logger->push(new $adapter($logConfig['name'], $options)); } return $logger; }); }
public function __construct(DI $di, $aggregate = true, $formatter = 'line') { $this->_di = $di; $this->_debugbar = $this->_di['debugbar']; $this->_formatter = strtolower($formatter); if ($di->has('log') && ($log = $di->get('log'))) { $debugbar_loger = new Debugbar($di['debugbar']); if ($log instanceof Adapter) { $di->remove('log'); $multiple = new Multiple(); $multiple->push(clone $log); $multiple->push($debugbar_loger); /** @var DI\Service $service */ $di->set('log', $multiple); } elseif ($log instanceof Multiple) { $log->push($debugbar_loger); } $this->_aggregate = $this->isAggregate($aggregate); } }
/** * Tests multiple loggers * * @issue 2798 * @author Serghei Iakovlev <*****@*****.**> * @since 2016-01-28 */ public function testMultipleLoggers() { $this->specify("Multiple logging does not works correctly", function () { $I = $this->tester; $file1 = $I->getNewFileName('log', 'log'); $file2 = $I->getNewFileName('log', 'log'); $logger = new Multiple(); $logger->push(new File($this->logPath . $file1)); $logger->push(new File($this->logPath . $file2)); $logger->setFormatter(new Json()); $logger->log('This is a message'); $logger->log("This is an error", Logger::ERROR); $logger->error("This is another error"); $expected = sprintf('{"type":"DEBUG","message":"This is a message","timestamp":%s}' . PHP_EOL . '{"type":"ERROR","message":"This is an error","timestamp":%s}' . PHP_EOL . '{"type":"ERROR","message":"This is another error","timestamp":%s}' . PHP_EOL, time(), time(), time()); $I->amInPath($this->logPath); $I->openFile($file1); $I->seeFileContentsEqual($expected); $I->deleteFile($file1); $I->openFile($file2); $I->seeFileContentsEqual($expected); $I->deleteFile($file2); }); }
$compileAlways = false; break; case DEV_ENV: $compileAlways = true; break; } $gettext = new Gettext(); $gettext->setOptions(['compileAlways' => $compileAlways, 'locale' => $locale->getBestLocale(), 'supported' => $locale->getSupportedLocales(), 'domains' => $config->locale->domains, 'localeDir' => $config->path->localeDir, 'localeCacheDir' => $config->path->localeCacheDir]); return $gettext; }); /** * */ $di->setShared('debug', function () use($di) { $config = $di->getConfig(); $logger = new MultipleStreamLogger(); switch (ENV) { case DEV_ENV: $logger->push(new ErrorLogger()); if ('cli' != php_sapi_name()) { $debugLogFile = str_replace('{{name}}', $config->site->domains[0], $config->dev->path->debugLog); $fileLogger = new FileLogger($debugLogFile); $fileLogger->getFormatter()->setFormat('%message%'); $logger->push($fileLogger); $logger->push(new Firelogger()); $logger->push(new FirephpLogger('')); } break; } return $logger; });
<?php use Phalcon\Logger, Phalcon\Logger\Multiple as MultipleStream, Phalcon\Logger\Adapter\File as FileAdapter, Phalcon\Logger\Adapter\Stream as StreamAdapter; $logger = new MultipleStream(); $logger->push(new FileAdapter('test.log')); $logger->push(new StreamAdapter('php://stdout')); $logger->log("This is a message"); $logger->log("This is an error", Logger::ERROR); $logger->error("This is another error");
use PhalconX\Mvc\View\VoltExtension; use AdminGen\Mvc\ViewHelper; use PhalconX\Validator; use PhalconX\Util\Reflection; use PhalconX\Util\ObjectMapper; use Phalcon\Mvc\Model\Metadata\Apc as MetadataApc; use PhalconX\Mvc\Metadata\Memory as MetadataMemory; use PhalconX\Annotations; $di = new FactoryDefault(); $di['config'] = $config; $di['registry'] = new Config(); $di['loader'] = $loader; $di['logger'] = function () use($config) { $isCli = PHP_SAPI == 'cli'; $prefix = $config->application->logsDir . ($isCli ? 'cli-' : ''); $logger = new MultipleStream(); $appender = new FileAppender($prefix . 'error.log'); $appender->setLogLevel(Logger::ERROR); $logger->push($appender); $appender = new FileAppender($prefix . 'default.log'); $appender->setLogLevel(Logger::INFO); $logger->push($appender); if ($isCli) { $appender = new ConsoleAppender('php://stderr'); $formatter = new LineFormatter("%date% [%type%] %message%\n"); $appender->setFormatter($formatter); $appender->setLogLevel(Logger::ERROR); $logger->push($appender); } return $logger; };
public function exception(\Exception $exp) { $message = sprintf("%s\n%s(%d)\n%s", $exp->getMessage(), $exp->getFile(), $exp->getLine(), $exp->getTraceAsString()); $this->logger->exception($message); }
public function alert($message, array $context = null) { parent::alert($message, $context); }