Login   Register  
PHP Classes
elePHPant
Icontem

File: Logger.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of Asbjorn Grandt  >  EPub  >  Logger.php  >  Download  
File: Logger.php
Role: Example script
Content type: text/plain
Description: Used by the example scripts
Class: EPub
Create ebook in EPUB format for ex. Apple iPad
Author: By
Last change: Merge pull request #13 from raqy/master

The changes look ok.
Date: 2013-12-01 03:24
Size: 3,081 bytes
 

Contents

Class file image Download
<?php
/**
 * Simple log line aggregator.
 *
 * @author A. Grandt <php@grandt.com>
 * @copyright 2012-2013 A. Grandt
 * @license GNU LGPL, Attribution required for commercial implementations, requested for everything else.
 * @version 1.00
 */
class Logger {
    const 
VERSION 1.00;

    private 
$log "";
    private 
$tStart;
    private 
$tLast;
    private 
$name NULL;
    private 
$isLogging FALSE;
    private 
$isDebugging FALSE;

    
/**
     * Class constructor.
     *
     * @return void
     */
    
function __construct($name NULL$isLogging FALSE) {
        if (
$name === NULL) {
            
$this->name "";
        } else {
            
$this->name $name " : ";
        }
        
$this->isLogging $isLogging;
        
$this->start();
    }

    
/**
     * Class destructor
     *
     * @return void
     * @TODO make sure elements in the destructor match the current class elements
     */
    
function __destruct() {
        unset(
$this->log);
    }

    function 
start() {
        
/* Prepare Logging. Just in case it's used. later */
        
if ($this->isLogging) {
            
$this->tStart gettimeofday();
            
$this->tLast $this->tStart;
            
$this->log "<h1>Log: " $this->name "</h1>\n<pre>Started: " gmdate("D, d M Y H:i:s T"$this->tStart['sec']) . "\n &#916; Start ;  &#916; Last  ;";
            
$this->logLine("Start");
        }
    }

    function 
dumpInstalledModules() {
        if (
$this->isLogging) {
            
$isCurlInstalled extension_loaded('curl') && function_exists('curl_version');
            
$isGdInstalled extension_loaded('gd') && function_exists('gd_info');
            
$isExifInstalled extension_loaded('exif') && function_exists('exif_imagetype');
            
$isFileGetContentsInstalled function_exists('file_get_contents');
            
$isFileGetContentsExtInstalled $isFileGetContentsInstalled && ini_get('allow_url_fopen');

            
$this->logLine("isCurlInstalled...............: " . ($isCurlInstalled "Yes" "No"));
            
$this->logLine("isGdInstalled.................: " . ($isGdInstalled "Yes" "No"));
            
$this->logLine("isExifInstalled...............: " . ($isExifInstalled "Yes" "No"));
            
$this->logLine("isFileGetContentsInstalled....: " . ($isFileGetContentsInstalled "Yes" "No"));
            
$this->logLine("isFileGetContentsExtInstalled.: " . ($isFileGetContentsExtInstalled "Yes" "No"));
        }
    }

    function 
logLine($line) {
        if (
$this->isLogging) {
            
$tTemp gettimeofday();
            
$tS $this->tStart['sec'] + (((int)($this->tStart['usec']/100))/10000);
            
$tL $this->tLast['sec'] + (((int)($this->tLast['usec']/100))/10000);
            
$tT $tTemp['sec'] + (((int)($tTemp['usec']/100))/10000);

            
$logline sprintf("\n+%08.04f; +%08.04f; ", ($tT-$tS), ($tT-$tL)) . $this->name $line;
            
$this->log .= $logline;
            
$this->tLast $tTemp;

            if (
$this->isDebugging) {
                echo 
"<pre>" $logline "\n</pre>\n";
            }
        }
    }

    function 
getLog() {
        return 
$this->log;
    }
}
?>