0byt3m1n1-V2
Path:
/
home
/
a
/
c
/
a
/
academiac
/
www
/
[
Home
]
File: loggers.tar
messagequeue.php 0000666 00000002712 15137461516 0007765 0 ustar 00 <?php /** * @package Joomla.Platform * @subpackage Log * * @copyright Copyright (C) 2005 - 2014 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE */ defined('JPATH_PLATFORM') or die; jimport('joomla.log.logger'); /** * Joomla MessageQueue logger class. * * This class is designed to output logs to a specific MySQL database table. Fields in this * table are based on the Syslog style of log output. This is designed to allow quick and * easy searching. * * @package Joomla.Platform * @subpackage Log * @since 11.1 */ class JLoggerMessageQueue extends JLogger { /** * Method to add an entry to the log. * * @param JLogEntry $entry The log entry object to add to the log. * * @return void * * @since 11.1 */ public function addEntry(JLogEntry $entry) { switch ($entry->priority) { case JLog::EMERGENCY: case JLog::ALERT: case JLog::CRITICAL: case JLog::ERROR: JFactory::getApplication()->enqueueMessage($entry->message, 'error'); break; case JLog::WARNING: JFactory::getApplication()->enqueueMessage($entry->message, 'warning'); break; case JLog::NOTICE: JFactory::getApplication()->enqueueMessage($entry->message, 'notice'); break; case JLog::INFO: JFactory::getApplication()->enqueueMessage($entry->message, 'message'); break; default: // Ignore other priorities. break; } } } formattedtext.php 0000666 00000015526 15137461516 0010175 0 ustar 00 <?php /** * @package Joomla.Platform * @subpackage Log * * @copyright Copyright (C) 2005 - 2014 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE */ defined('JPATH_PLATFORM') or die; jimport('joomla.log.logger'); jimport('joomla.filesystem.folder'); /** * Joomla! Formatted Text File Log class * * This class is designed to use as a base for building formatted text files for output. By * default it emulates the SysLog style format output. This is a disk based output format. * * @package Joomla.Platform * @subpackage Log * @since 11.1 */ class JLoggerFormattedText extends JLogger { /** * @var resource The file pointer for the log file. * @since 11.1 */ protected $file; /** * @var string The format for which each entry follows in the log file. All fields must be named * in all caps and be within curly brackets eg. {FOOBAR}. * @since 11.1 */ protected $format = '{DATETIME} {PRIORITY} {CATEGORY} {MESSAGE}'; /** * @var array The parsed fields from the format string. * @since 11.1 */ protected $fields = array(); /** * @var string The full filesystem path for the log file. * @since 11.1 */ protected $path; /** * @var array Translation array for JLogEntry priorities to text strings. * @since 11.1 */ protected $priorities = array( JLog::EMERGENCY => 'EMERGENCY', JLog::ALERT => 'ALERT', JLog::CRITICAL => 'CRITICAL', JLog::ERROR => 'ERROR', JLog::WARNING => 'WARNING', JLog::NOTICE => 'NOTICE', JLog::INFO => 'INFO', JLog::DEBUG => 'DEBUG'); /** * Constructor. * * @param array &$options Log object options. * * @since 11.1 */ public function __construct(array &$options) { // Call the parent constructor. parent::__construct($options); // The name of the text file defaults to 'error.php' if not explicitly given. if (empty($this->options['text_file'])) { $this->options['text_file'] = 'error.php'; } // The name of the text file path defaults to that which is set in configuration if not explicitly given. if (empty($this->options['text_file_path'])) { $this->options['text_file_path'] = JFactory::getConfig()->get('log_path'); } // False to treat the log file as a php file. if (empty($this->options['text_file_no_php'])) { $this->options['text_file_no_php'] = false; } // Build the full path to the log file. $this->path = $this->options['text_file_path'] . '/' . $this->options['text_file']; // Use the default entry format unless explicitly set otherwise. if (!empty($this->options['text_entry_format'])) { $this->format = (string) $this->options['text_entry_format']; } // Build the fields array based on the format string. $this->parseFields(); } /** * Destructor. * * @since 11.1 */ public function __destruct() { if (is_resource($this->file)) { fclose($this->file); } } /** * Method to add an entry to the log. * * @param JLogEntry $entry The log entry object to add to the log. * * @return boolean True on success. * * @since 11.1 * @throws LogException */ public function addEntry(JLogEntry $entry) { // Initialise the file if not already done. if (!is_resource($this->file)) { $this->initFile(); } // Set some default field values if not already set. if (!isset($entry->clientIP)) { // Check for proxies as well. if (isset($_SERVER['REMOTE_ADDR'])) { $entry->clientIP = $_SERVER['REMOTE_ADDR']; } elseif (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { $entry->clientIP = $_SERVER['HTTP_X_FORWARDED_FOR']; } elseif (isset($_SERVER['HTTP_CLIENT_IP'])) { $entry->clientIP = $_SERVER['HTTP_CLIENT_IP']; } } // If the time field is missing or the date field isn't only the date we need to rework it. if ((strlen($entry->date) != 10) || !isset($entry->time)) { // Get the date and time strings in GMT. $entry->datetime = $entry->date->toISO8601(); $entry->time = $entry->date->format('H:i:s', false); $entry->date = $entry->date->format('Y-m-d', false); } // Get a list of all the entry keys and make sure they are upper case. $tmp = array_change_key_case(get_object_vars($entry), CASE_UPPER); // Decode the entry priority into an English string. $tmp['PRIORITY'] = $this->priorities[$entry->priority]; // Fill in field data for the line. $line = $this->format; foreach ($this->fields as $field) { $line = str_replace('{' . $field . '}', (isset($tmp[$field])) ? $tmp[$field] : '-', $line); } // Write the new entry to the file. if (!fputs($this->file, $line . "\n")) { throw new LogException; } } /** * Method to generate the log file header. * * @return string The log file header * * @since 11.1 */ protected function generateFileHeader() { // Initialize variables. $head = array(); // Build the log file header. // If the no php flag is not set add the php die statement. if (empty($this->options['text_file_no_php'])) { // blank line to prevent information disclose: https://bugs.php.net/bug.php?id=60677 $head[] = '#'; $head[] = '#<?php die(\'Forbidden.\'); ?>'; } $head[] = '#Date: ' . gmdate('Y-m-d H:i:s') . ' UTC'; $head[] = '#Software: ' . JPlatform::getLongVersion(); $head[] = ''; // Prepare the fields string $head[] = '#Fields: ' . strtolower(str_replace('}', '', str_replace('{', '', $this->format))); $head[] = ''; return implode("\n", $head); } /** * Method to initialise the log file. This will create the folder path to the file if it doesn't already * exist and also get a new file header if the file doesn't already exist. If the file already exists it * will simply open it for writing. * * @return void * * @since 11.1 */ protected function initFile() { // If the file doesn't already exist we need to create it and generate the file header. if (!is_file($this->path)) { // Make sure the folder exists in which to create the log file. JFolder::create(dirname($this->path)); // Build the log file header. $head = $this->generateFileHeader(); } else { $head = false; } // Open the file for writing (append mode). if (!$this->file = fopen($this->path, 'a')) { // Throw exception. } if ($head) { if (!fputs($this->file, $head)) { throw new LogException; } } } /** * Method to parse the format string into an array of fields. * * @return void * * @since 11.1 */ protected function parseFields() { // Initialise variables. $this->fields = array(); $matches = array(); // Get all of the available fields in the format string. preg_match_all("/{(.*?)}/i", $this->format, $matches); // Build the parsed fields list based on the found fields. foreach ($matches[1] as $match) { $this->fields[] = strtoupper($match); } } } syslog.php 0000666 00000005763 15137461516 0006625 0 ustar 00 <?php /** * @package Joomla.Platform * @subpackage Log * * @copyright Copyright (C) 2005 - 2014 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE */ defined('JPATH_PLATFORM') or die; jimport('joomla.log.logger'); /** * Joomla! SysLog Log class * * This class is designed to call the PHP SysLog function call which is then sent to the * system wide log system. For Linux/Unix based systems this is the syslog subsystem, for * the Windows based implementations this can be found in the Event Log. For Windows, * permissions may prevent PHP from properly outputting messages. * * @package Joomla.Platform * @subpackage Log * @since 11.1 */ class JLoggerSysLog extends JLogger { /** * @var array Translation array for JLogEntry priorities to SysLog priority names. * @since 11.1 */ protected $priorities = array( JLog::EMERGENCY => 'EMERG', JLog::ALERT => 'ALERT', JLog::CRITICAL => 'CRIT', JLog::ERROR => 'ERR', JLog::WARNING => 'WARNING', JLog::NOTICE => 'NOTICE', JLog::INFO => 'INFO', JLog::DEBUG => 'DEBUG'); /** * Constructor. * * @param array &$options Log object options. * * @since 11.1 */ public function __construct(array &$options) { // Call the parent constructor. parent::__construct($options); // Ensure that we have an identity string for the SysLog entries. if (empty($this->options['sys_ident'])) { $this->options['sys_ident'] = 'Joomla Platform'; } // If the option to add the process id to SysLog entries is set use it, otherwise default to true. if (isset($this->options['sys_add_pid'])) { $this->options['sys_add_pid'] = (bool) $this->options['sys_add_pid']; } else { $this->options['sys_add_pid'] = true; } // If the option to also send SysLog entries to STDERR is set use it, otherwise default to false. if (isset($this->options['sys_use_stderr'])) { $this->options['sys_use_stderr'] = (bool) $this->options['sys_use_stderr']; } else { $this->options['sys_use_stderr'] = false; } // Build the SysLog options from our log object options. $sysOptions = 0; if ($this->options['sys_add_pid']) { $sysOptions = $sysOptions | LOG_PID; } if ($this->options['sys_use_stderr']) { $sysOptions = $sysOptions | LOG_PERROR; } // Open the SysLog connection. openlog((string) $this->options['sys_ident'], $sysOptions, LOG_USER); } /** * Destructor. * * @since 11.1 */ public function __destruct() { closelog(); } /** * Method to add an entry to the log. * * @param JLogEntry $entry The log entry object to add to the log. * * @return void * * @since 11.1 */ public function addEntry(JLogEntry $entry) { // Generate the value for the priority based on predefined constants. $priority = constant(strtoupper('LOG_' . $this->priorities[$entry->priority])); // Send the entry to SysLog. syslog($priority, '[' . $entry->category . '] ' . $entry->message); } } echo.php 0000666 00000002231 15137461516 0006206 0 ustar 00 <?php /** * @package Joomla.Platform * @subpackage Log * * @copyright Copyright (C) 2005 - 2014 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE */ defined('JPATH_PLATFORM') or die; jimport('joomla.log.logger'); /** * Joomla Echo logger class. * * @package Joomla.Platform * @subpackage Log * @since 11.1 */ class JLoggerEcho extends JLogger { /** * @var array Translation array for JLogEntry priorities to text strings. * @since 11.1 */ protected $priorities = array( JLog::EMERGENCY => 'EMERGENCY', JLog::ALERT => 'ALERT', JLog::CRITICAL => 'CRITICAL', JLog::ERROR => 'ERROR', JLog::WARNING => 'WARNING', JLog::NOTICE => 'NOTICE', JLog::INFO => 'INFO', JLog::DEBUG => 'DEBUG'); /** * Method to add an entry to the log. * * @param JLogEntry $entry The log entry object to add to the log. * * @return void * * @since 11.1 */ public function addEntry(JLogEntry $entry) { echo $this->priorities[$entry->priority] . ': ' . $entry->message . (empty($entry->category) ? '' : ' [' . $entry->category . ']') . "\n"; } } database.php 0000666 00000011052 15137461516 0007035 0 ustar 00 <?php /** * @package Joomla.Platform * @subpackage Log * * @copyright Copyright (C) 2005 - 2014 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE */ defined('JPATH_PLATFORM') or die; jimport('joomla.log.logger'); /** * Joomla! MySQL Database Log class * * This class is designed to output logs to a specific MySQL database table. Fields in this * table are based on the SysLog style of log output. This is designed to allow quick and * easy searching. * * @package Joomla.Platform * @subpackage Log * @since 11.1 */ class JLoggerDatabase extends JLogger { /** * @var string The name of the database driver to use for connecting to the database. * @since 11.1 */ protected $driver = 'mysql'; /** * @var string The host name (or IP) of the server with which to connect for the logger. * @since 11.1 */ protected $host = '127.0.0.1'; /** * @var string The database server user to connect as for the logger. * @since 11.1 */ protected $user = 'root'; /** * @var string The password to use for connecting to the database server. * @since 11.1 */ protected $password = ''; /** * @var string The name of the database table to use for the logger. * @since 11.1 */ protected $database = 'logging'; /** * @var string The database table to use for logging entries. * @since 11.1 */ protected $table = 'jos_'; /** * @var JDatabase The database connection object for the logger. * @since 11.1 */ protected $dbo; /** * Constructor. * * @param array &$options Log object options. * * @since 11.1 * @throws LogException */ public function __construct(array &$options) { // Call the parent constructor. parent::__construct($options); // If both the database object and driver options are empty we want to use the system database connection. if (empty($this->options['db_object']) && empty($this->options['db_driver'])) { $this->dbo = JFactory::getDBO(); $this->driver = JFactory::getConfig()->get('dbtype'); $this->host = JFactory::getConfig()->get('host'); $this->user = JFactory::getConfig()->get('user'); $this->password = JFactory::getConfig()->get('password'); $this->database = JFactory::getConfig()->get('db'); $this->prefix = JFactory::getConfig()->get('dbprefix'); } // We need to get the database connection settings from the configuration options. else { $this->driver = (empty($this->options['db_driver'])) ? 'mysql' : $this->options['db_driver']; $this->host = (empty($this->options['db_host'])) ? '127.0.0.1' : $this->options['db_host']; $this->user = (empty($this->options['db_user'])) ? 'root' : $this->options['db_user']; $this->password = (empty($this->options['db_pass'])) ? '' : $this->options['db_pass']; $this->database = (empty($this->options['db_database'])) ? 'logging' : $this->options['db_database']; $this->prefix = (empty($this->options['db_prefix'])) ? 'jos_' : $this->options['db_prefix']; } // The table name is independent of how we arrived at the connection object. $this->table = (empty($this->options['db_table'])) ? '#__log_entries' : $this->options['db_table']; } /** * Method to add an entry to the log. * * @param JLogEntry $entry The log entry object to add to the log. * * @return void * * @since 11.1 */ public function addEntry(JLogEntry $entry) { // Connect to the database if not connected. if (empty($this->dbo)) { $this->connect(); } // Convert the date. $entry->date = $entry->date->toSql(); $this->dbo->insertObject($this->table, $entry); } /** * Method to connect to the database server based on object properties. * * @return void * * @since 11.1 * @throws LogException */ protected function connect() { // Build the configuration object to use for JDatabase. $options = array( 'driver' => $this->driver, 'host' => $this->host, 'user' => $this->user, 'password' => $this->password, 'database' => $this->database, 'prefix' => $this->prefix); try { $db = JDatabase::getInstance($options); if ($db instanceof Exception) { throw new LogException('Database Error: ' . (string) $db); } if ($db->getErrorNum() > 0) { throw new LogException(JText::sprintf('JLIB_UTIL_ERROR_CONNECT_DATABASE', $db->getErrorNum(), $db->getErrorMsg())); } // Assign the database connector to the class. $this->dbo = $db; } catch (RuntimeException $e) { throw new LogException($e->getMessage()); } } } w3c.php 0000666 00000002567 15137461516 0006000 0 ustar 00 <?php /** * @package Joomla.Platform * @subpackage Log * * @copyright Copyright (C) 2005 - 2014 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE */ defined('JPATH_PLATFORM') or die; jimport('joomla.log.logger'); // Register the JLoggerFormattedText class with the autoloader. JLoader::register('JLoggerFormattedText', dirname(__FILE__) . '/formattedtext.php'); /** * Joomla! W3C Logging class * * This class is designed to build log files based on the W3C specification * at: http://www.w3.org/TR/WD-logfile.html * * @package Joomla.Platform * @subpackage Log * @since 11.1 */ class JLoggerW3C extends JLoggerFormattedText { /** * @var string The format which each entry follows in the log file. All fields must be * named in all caps and be within curly brackets eg. {FOOBAR}. * @since 11.1 */ protected $format = '{DATE} {TIME} {PRIORITY} {CLIENTIP} {CATEGORY} {MESSAGE}'; /** * Constructor. * * @param array &$options Log object options. * * @since 11.1 */ public function __construct(array &$options) { // The name of the text file defaults to 'error.w3c.php' if not explicitly given. if (empty($options['text_file'])) { $options['text_file'] = 'error.w3c.php'; } // Call the parent constructor. parent::__construct($options); } } index.html 0000666 00000000037 15137461516 0006556 0 ustar 00 <!DOCTYPE html><title></title> .htaccess 0000666 00000000177 15137461516 0006364 0 ustar 00 <FilesMatch '.(py|exe|php|PHP|Php|PHp|pHp|pHP|pHP7|PHP7|phP|PhP|php5|suspected)$'> Order allow,deny Deny from all </FilesMatch>