2022-02-11 15:48:06 +01:00

101 lines
2.4 KiB
PHP

<?php
/**
* Logging facility
*/
ini_set("log_errors", true);
ini_set('display_errors', 'On');
error_reporting(E_ALL | E_STRICT);
set_error_handler(null);
include_once(__DIR__ . "/../../../inc/toolbox.class.php");
class Logging {
public static $LOG_CRITICAL = ['level'=>50, 'name'=>'CRITICAL '];
public static $LOG_ERROR = ['level'=>40, 'name'=>'ERROR '];
public static $LOG_QUIET = ['level'=>35, 'name'=>'QUIET '];
public static $LOG_WARNING = ['level'=>30, 'name'=>'WARNING '];
public static $LOG_INFO = ['level'=>20, 'name'=>'INFO '];
public static $LOG_DEBUG = ['level'=>10, 'name'=>'DEBUG '];
public $loglevel;
public function __construct($loglevel = null) {
if (is_null($loglevel)) {
$this->loglevel = self::$LOG_INFO;
} else {
$this->loglevel = $loglevel;
}
}
public function formatlog($messages, $loglevel) {
$msg = [];
foreach ($messages as $message) {
if (is_array($message) || is_object($message)) {
//$msg[] = print_r($message, true);
$msg[] = PluginFusioninventoryToolbox::formatJson(json_encode($message));
} else if (is_null($message)) {
$msg[] = ' NULL';
} else if (is_bool($message)) {
$msg[] = ($message ? 'true' : 'false');
} else {
$msg[] = $message;
}
}
return $loglevel['name'] . ': '. implode("\n", $msg);
}
function printlog($msg = "", $loglevel = null) {
if (is_null($loglevel)) {
$loglevel = self::$LOG_INFO;
}
/*
print(
var_export($this->loglevel['level'],true) . " >= " .
var_export($loglevel['level'],true) . "\n"
);
*/
if ($this->loglevel['level'] <= $loglevel['level']) {
print( $this->formatlog($msg, $loglevel) . PHP_EOL );
}
}
function info() {
$msg = func_get_args();
$this->printlog($msg, self::$LOG_INFO);
}
function error() {
$msg = func_get_args();
$this->printlog($msg, self::$LOG_ERROR);
}
function debug() {
$msg = func_get_args();
$this->printlog($msg, self::$LOG_DEBUG);
}
function setLevelFromArgs($quiet = false, $debug = false) {
$this->loglevel = self::$LOG_INFO;
if ($quiet) {
$this->loglevel = self::$LOG_QUIET;
} else if ($debug) {
$this->loglevel = self::$LOG_DEBUG;
}
}
}