Joomla Platform  13.1
Documentation des API du framework Joomla Platform
 Tout Classes Espaces de nommage Fichiers Fonctions Variables Pages
Référence de la classe JLogLoggerFormattedtext
+ Graphe d'héritage de JLogLoggerFormattedtext:
+ Graphe de collaboration de JLogLoggerFormattedtext:

Liste de tous les membres

Fonctions membres publiques

 __construct (array &$options)
 __destruct ()
 addEntry (JLogEntry $entry)

Fonctions membres protégées

 generateFileHeader ()
 initFile ()
 parseFields ()

Attributs protégés

 $file
 $format = '{DATETIME} {PRIORITY} {CATEGORY} {MESSAGE}'
 $fields = array()
 $path
- Attributs protégés inherited from JLogLogger
 $options = array()
 $priorities

Description détaillée

Définition à la ligne 24 du fichier formattedtext.php.


Documentation des constructeurs et destructeur

JLogLoggerFormattedtext::__construct ( array &  $options)

Constructor.

Paramètres:
array&$optionsLog object options.
Depuis:
11.1

Réimplémentée à partir de JLogLogger.

Réimplémentée dans JLogLoggerW3c.

Définition à la ligne 58 du fichier formattedtext.php.

Références JFactory\getConfig().

{
// Call the parent constructor.
// 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();
}

+ Voici le graphe d'appel pour cette fonction :

JLogLoggerFormattedtext::__destruct ( )

Destructor.

Depuis:
11.1

Définition à la ligne 99 du fichier formattedtext.php.

{
if (is_resource($this->file))
{
fclose($this->file);
}
}

Documentation des fonctions membres

JLogLoggerFormattedtext::addEntry ( JLogEntry  $entry)

Method to add an entry to the log.

Paramètres:
JLogEntry$entryThe log entry object to add to the log.
Renvoie:
boolean True on success.
Depuis:
11.1
Exceptions:
RuntimeException

Réimplémentée à partir de JLogLogger.

Définition à la ligne 117 du fichier formattedtext.php.

{
// 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 (!fwrite($this->file, $line . "\n"))
{
throw new RuntimeException('Cannot write to log file.');
}
}
JLogLoggerFormattedtext::generateFileHeader ( )
protected

Method to generate the log file header.

Renvoie:
string The log file header
Depuis:
11.1

Définition à la ligne 182 du fichier formattedtext.php.

Références JPlatform\getLongVersion().

{
$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);
}

+ Voici le graphe d'appel pour cette fonction :

JLogLoggerFormattedtext::initFile ( )
protected

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.

Renvoie:
void
Depuis:
11.1
Exceptions:
RuntimeException

Définition à la ligne 216 du fichier formattedtext.php.

Références JFolder\create().

{
// 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 new RuntimeException('Cannot open file for writing log');
}
if ($head)
{
if (!fwrite($this->file, $head))
{
throw new RuntimeException('Cannot fput file for log');
}
}
}

+ Voici le graphe d'appel pour cette fonction :

JLogLoggerFormattedtext::parseFields ( )
protected

Method to parse the format string into an array of fields.

Renvoie:
void
Depuis:
11.1

Définition à la ligne 254 du fichier formattedtext.php.

{
$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);
}
}

Documentation des données membres

JLogLoggerFormattedtext::$fields = array()
protected

Définition à la ligne 43 du fichier formattedtext.php.

JLogLoggerFormattedtext::$file
protected

Définition à la ligne 30 du fichier formattedtext.php.

JLogLoggerFormattedtext::$format = '{DATETIME} {PRIORITY} {CATEGORY} {MESSAGE}'
protected

Réimplémentée dans JLogLoggerW3c.

Définition à la ligne 37 du fichier formattedtext.php.

JLogLoggerFormattedtext::$path
protected

Définition à la ligne 49 du fichier formattedtext.php.


La documentation de cette classe a été générée à partir du fichier suivant :