/** * Initialize objects for logging. We have two logs files: * - gid-last-request.log: to see logger for the last request * - gid-all-requests.log: to see all logger for all request * * @param \LoggerHierarchy Object to handle objects for logging. * @param mixed Either path to the config file or the configuration as * an array. * @return void */ public function configure(\LoggerHierarchy $hierarchy, $input = null) { //Create a logger layout $layout = new \LoggerLayoutPattern(); $layout->setConversionPattern("%d{Y-m-d H:i:s}[%r] %-5level %C.%M[%L] %msg%n"); $layout->activateOptions(); // Create an appender which logs to file $appLog = new \LoggerAppenderRollingFile('main'); $appLog->setFile($this->log_path . 'gid-all-requests.log'); $appLog->setAppend(true); $appLog->setMaxFileSize('2MB'); $appLog->setMaxBackupIndex(5); $appLog->setThreshold($this->threshold); $appLog->setLayout($layout); $appLog->activateOptions(); //Create an appender which logs Console $appConsole = new \LoggerAppenderFile('console'); $appConsole->setFile($this->log_path . 'gid-last-request.log'); $appConsole->setAppend(false); $appConsole->setThreshold($this->threshold); $appConsole->setLayout($layout); $appConsole->activateOptions(); // Add appenders to the root logger $root = $hierarchy->getRootLogger(); $root->addAppender($appLog); $root->addAppender($appConsole); }
private function setupLogging() { $this->logger = Logger::getLogger('Panopta API'); $this->logger->setLevel($this->logLevel == LOG_INFO ? LoggerLevel::getLevelInfo() : LoggerLevel::getLevelDebug()); $logAppender = new LoggerAppenderDailyFile(); $logAppender->setFile(rtrim(rtrim($this->logPath, "/"), "\\") . DIRECTORY_SEPARATOR . "panopta_api.log"); $logAppender->setAppend(true); $logAppender->setDatePattern("yyyy-MM-dd'.log'"); $logAppender->setThreshold($this->logLevel); $pattern = new LoggerLayoutPattern(); $pattern->setConversionPattern("%date - %logger - %level - %message%newline"); $logAppender->setLayout($pattern); $logAppender->activateOptions(); $this->logger->addAppender($logAppender); }
public function format(\LoggerLoggingEvent $event) { $format = parent::format($event); $throwableInfo = $event->getThrowableInformation(); if ($throwableInfo === null) { return $format; } $renderer = new \LoggerRendererException(); return $format . $renderer->render($throwableInfo->getThrowable()) . "\n"; }
public function XtestWarnLayout() { /* Comment in when this has been fixed: 1) testWarnLayout(LoggerLayoutPatternTest) Undefined index: log4php.LoggerPatternConverter.spaces /Users/cgrobmeier/Documents/Development/workspace/log4php-trunk/src/main/php/helpers/LoggerPatternConverter.php:131 /Users/cgrobmeier/Documents/Development/workspace/log4php-trunk/src/main/php/helpers/LoggerPatternConverter.php:104 /Users/cgrobmeier/Documents/Development/workspace/log4php-trunk/src/main/php/layouts/LoggerPatternLayout.php:216 /Users/cgrobmeier/Documents/Development/workspace/log4php-trunk/src/test/php/layouts/LoggerLayoutPatternTest.php:45 * */ $event = new LoggerLoggingEvent("LoggerLayoutXml", new Logger("TEST"), LoggerLevel::getLevelWarn(), "testmessage"); $layout = new LoggerLayoutPattern(); $layout->setConversionPattern("%-5p %c %X{username}: %m in %F at %L%n"); $v = $layout->format($event); $e = 'WARN TEST : testmessage in NA at NA' . PHP_EOL; self::assertEquals($v, $e); }
/** * activateOptions method * * Inherited method triggered after object construction, which shall set * status of appender openness ($this->closed) * * @return bool True if appender is open */ public function activateOptions() { global $wpdb; $this->_db = $wpdb; $this->closed = false; if (!$this->_create_table()) { $this->closed = true; } else { $converter_map = LoggerLayoutPattern::getDefaultConverterMap(); foreach ($this->_pattern as $pattern) { $parser = new LoggerPatternParser($pattern, $converter_map); $this->_converters[] = $parser->parse(); } } return !$this->closed; }
/** * Acquires a database connection based on parameters. * Parses the insert pattern to create a chain of converters which will be * used in forming query parameters from logging events. */ public function activateOptions() { try { $this->establishConnection(); } catch (PDOException $e) { $this->warn("Failed connecting to database. Closing appender. Error: " . $e->getMessage()); $this->close(); return; } // Parse the insert patterns; pattern parts are comma delimited $pieces = explode(',', $this->insertPattern); $converterMap = LoggerLayoutPattern::getDefaultConverterMap(); foreach ($pieces as $pattern) { $parser = new LoggerPatternParser($pattern, $converterMap); $this->converters[] = $parser->parse(); } $this->closed = false; }
private function formatEvent($event, $pattern) { $layout = new LoggerLayoutPattern(); $layout->setConversionPattern($pattern); $layout->activateOptions(); return $layout->format($event); }
/** * Helper function. * * Configures Apache's Log4PHP RootLogger based on values obtained from the * ESAPI properties file. All instances of Log4PHP Logger will inherit the * configuration. * * @return does not return a value. */ private static function _initialise() { self::$_initialised = true; $secConfig = ESAPI::getSecurityConfiguration(); $logLevel = $secConfig->getLogLevel(); // Patterns representing the format of Log entries // d date, p priority (level), m message, n newline $dateFormat = $secConfig->getLogFileDateFormat(); $logfileLayoutPattern = "%d{{$dateFormat}} %m %n"; // LogFile properties. $logFileName = $secConfig->getLogFileName(); $maxLogFileSize = $secConfig->getMaxLogFileSize(); $maxLogFileBackups = $secConfig->getMaxLogFileBackups(); // LogFile layout $logfileLayout = new LoggerLayoutPattern(); $logfileLayout->setConversionPattern($logfileLayoutPattern); // LogFile RollingFile Appender $appenderLogfile = new LoggerAppenderRollingFile('ESAPI LogFile'); $appenderLogfile->setFile($logFileName, true); $appenderLogfile->setMaxFileSize($maxLogFileSize); $appenderLogfile->setMaxBackupIndex($maxLogFileBackups); $appenderLogfile->setLayout($logfileLayout); if ($logLevel !== 'OFF') { $appenderLogfile->activateOptions(); } // Get the RootLogger and reset it, before adding our Appenders and // setting our Loglevel $rootLogger = Logger::getRootLogger(); $rootLogger->removeAllAppenders(); $rootLogger->addAppender($appenderLogfile); $rootLogger->setLevel(self::_convertESAPILeveltoLoggerLevel($logLevel)); }
<?php require_once BASE_PATH . "/lib/log/log4php/Logger.php"; $log = Logger::getRootLogger(); $log->setLevel(LoggerLevel::toLevel(AE_LOG_LEVEL)); $appender = new LoggerAppenderRollingFile("MyAppender"); $appender->setFile(BASE_PATH . "/log/tephlon.log", true); $appender->setMaxBackupIndex(10); $appender->setMaxFileSize("10MB"); $appenderlayout = new LoggerLayoutPattern(); $pattern = '%d{d.m.Y H.i.s:u} [%p] %t: %m (at %M)%n'; //$pattern = '%d{d.m.Y H.i.s:u} [%p] %m %n'; $appenderlayout->setConversionPattern($pattern); $appender->setLayout($appenderlayout); $appender->activateOptions(); $log->removeAllAppenders(); $log->addAppender($appender); $log->info(" *** Engine initializing ***"); function getLogger() { global $log; return $log; } function initLogger() { $loggerName = "log"; // Iterate over all declared classes $classes = get_declared_classes(); foreach ($classes as $class) { $reflection = new ReflectionClass($class); // If the class is internally defined by PHP or has no property called "logger", skip it.
public function testMemoryPrecisionLabel() { $this->mockFunction('memory_get_usage', function () { return 1024 * 1024 * 1024 * 1024 * 1024 + 12 * 1024; }); $layout = new LoggerLayoutPattern('{memory:0,bytes,kbytes,mbytes}'); $this->assertEquals('1073741824mbytes' . PHP_EOL, $layout->formatMessage(new Logger("root"), Logger::INFO, '')); $layout = new LoggerLayoutPattern('{memory:2,bytes,kbytes,mbytes}'); $this->assertEquals('1073741824.01mbytes' . PHP_EOL, $layout->formatMessage(new Logger("root"), Logger::INFO, '')); }