Ejemplo n.º 1
0
 /**
  * Traces a log message
  * @param string $message The message
  * @param int $logLevel The log level
  * @color string $color The color of the message in the log
  */
 private function log($message, $logLevel = LOG_MIN_LEVEL, $color = NULL)
 {
     // Tests log level
     if (!IS_FILE_LOG_ENABLED || !$this->logFile) {
         return;
     }
     if ($this->detailedMode || $logLevel >= LOG_MIN_LEVEL && (!$this->silentMode || $logLevel >= LogTool::WARNING_LEVEL)) {
         $logHeaderList = array();
         // Sets headers
         // Log type
         if ($logLevel >= LogTool::ERROR_LEVEL) {
             $logHeaderList[LogTool::TYPE_FIELD] = 'ERROR';
         } else {
             if ($logLevel >= LogTool::WARNING_LEVEL) {
                 $logHeaderList[LogTool::TYPE_FIELD] = 'WARNING';
             } else {
                 if ($logLevel >= LogTool::NOTICE_LEVEL) {
                     $logHeaderList[LogTool::TYPE_FIELD] = 'NOTICE';
                 } else {
                     $logHeaderList[LogTool::TYPE_FIELD] = 'DEBUG';
                 }
             }
         }
         // Remote ip
         if (ArrayTool::array_key_exists('REMOTE_ADDR', $_SERVER)) {
             $logHeaderList[LogTool::REMOTE_IP_FIELD] = $_SERVER['REMOTE_ADDR'];
         } else {
             $logHeaderList[LogTool::REMOTE_IP_FIELD] = '';
         }
         // Current uri/script
         $logHeaderList[LogTool::URI_FIELD] = basename($_SERVER['PHP_SELF']);
         // Current time
         $logHeaderList[LogTool::DATE_FIELD] = DateTool::getTimeString(DateTool::FORMAT_TIME);
         // host
         $logHeaderList[LogTool::HOST_FIELD] = php_uname('n');
         // computes header
         $logHeader = '[' . $logHeaderList[LogTool::DATE_FIELD] . '] ' . $logHeaderList[LogTool::TYPE_FIELD] . ' [' . ($logHeaderList[LogTool::REMOTE_IP_FIELD] ? $logHeaderList[LogTool::REMOTE_IP_FIELD] . ' > ' : '') . $logHeaderList[LogTool::HOST_FIELD] . '] ' . $logHeaderList[LogTool::URI_FIELD];
         // computes log line
         $logLine = $color . $logHeader . ': ' . str_replace(PHP_EOL, PHP_EOL . $logHeader . ': ', $message) . PHP_EOL;
         // Opens new log file if date has changed
         if (DateTool::getTimeString(DateTool::FORMAT_MYSQL_DATE) != $this->currentLogDate) {
             $this->closeLogFile();
             $this->openLogFile();
         }
         // Finally write the line in log file
         fwrite($this->logFile, $logLine);
     }
 }
Ejemplo n.º 2
0
<?php

// Starts session before header is sent
session_start();
require_once '../../../init/initLog.inc.php';
$currentDay = DateTool::getTimeString(DateTool::FORMAT_MYSQL_DATE);
define('TAIL_LOG_FILE', LOG_DIR . '/' . $currentDay . '-web.log');
$grep = RequestTool::getParameter('grep', RequestTool::PARAM_TYPE_FREE, false);
$logFile = file_exists(TAIL_LOG_FILE) ? file(TAIL_LOG_FILE) : array();
$starterLine = SessionTool::getInstance()->getParameter('startLine', false, 0);
$lineCount = count($logFile);
for ($index = $starterLine; $index < $lineCount; ++$index) {
    // Filter lines per grep
    if ($grep && !StringTool::strpos($logFile[$index], $grep)) {
        continue;
    }
    $truncate = true;
    switch (StringTool::substr($logFile[$index], 0, 7)) {
        case "":
            $color = '#5F5';
            // Green
            break;
        case "":
            $color = '#FF5';
            // Yellow
            break;
        case "":
            $color = '#F55';
            // Red
            break;
        case "":
Ejemplo n.º 3
0
 /**
  * Converts a timestamp to a time string
  * @param int $timestamp The timestamp (default is NULL for now)
  * @param string $format The string format
  * @return string The time string
  */
 public static function timestampToString($timestamp, $format = DateTool::FORMAT_MYSQL_DATETIME)
 {
     if (!StringTool::isInt($timestamp)) {
         throw new Exception('Unable to convert timestamp to time string : "' . $timestamp . '" is not an integer');
     }
     return DateTool::getTimeString($format, $timestamp);
 }