joomla-platform / libraries / joomla / log / logentry.php

<?php
/**
 * @package     Joomla.Platform
 * @subpackage  Log
 *
 * @copyright   Copyright (C) 2005 - 2011 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.log');

/**
 * Joomla! Log Entry class
 *
 * This class is designed to hold log entries for either writing to an engine, or for
 * supported engines, retrieving lists and building in memory (PHP based) search operations.
 *
 * @package     Joomla.Platform
 * @subpackage  Log
 * @since       11.1
 */
class JLogEntry
{
    /**
     * @var    string  Application responsible for log entry.
     * @since  11.1
     */
    public $category;

    /**
     * @var    JDate  The date the message was logged.
     * @since  11.1
     */
    public $date;

    /**
     * @var    string  Message to be logged.
     * @since  11.1
     */
    public $message;

    /**
     * @var    string  The priority of the message to be logged.
     * @since  11.1
     * @see    $_priorities
     */
    public $priority = JLog::INFO;

    /**
     * @var    array  List of available log priority levels [Based on the SysLog default levels].
     * @since  11.1
     */
    private $_priorities = array(
        JLog::EMERGENCY,
        JLog::ALERT,
        JLog::CRITICAL,
        JLog::ERROR,
        JLog::WARNING,
        JLog::NOTICE,
        JLog::INFO,
        JLog::DEBUG
    );

    /**
     * Constructor
     *
     * @param   string  $message   The message to log.
     * @param   string  $priority  Message priority based on {$this->_priorities}.
     * @param   string  $category  Type of entry
     * @param   string  $date      Date of entry (defaults to now if not specified or blank)
     *
     * @return  void
     *
     * @since   11.1
     */
    public function __construct($message, $priority = JLog::INFO, $category = '', $date = null)
    {
        $this->message = (string) $message;

        // Sanitize the priority.
        if (!in_array($priority, $this->_priorities, true)) {
            $priority = JLog::INFO;
        }
        $this->priority = $priority;

        // Sanitize category if it exists.
        if (!empty($category)) {
            $this->category = (string) strtolower(preg_replace('/[^A-Z0-9_\.-]/i', '', $category));
        }

        // Get the date as a JDate object.
        $this->date = JFactory::getDate(($date ? $date : 'now'));
    }
}
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.