mirror of
https://github.com/wallabag/wallabag.git
synced 2024-12-02 05:51:20 +00:00
92 lines
3 KiB
PHP
92 lines
3 KiB
PHP
|
<?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 Δ Start ; Δ 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;
|
||
|
}
|
||
|
}
|
||
|
?>
|