133 lines
2.9 KiB
PHP
133 lines
2.9 KiB
PHP
<?php
|
|
/**
|
|
* Simple Logger Class
|
|
*
|
|
* @author Josh Nesbitt <josh@josh-nesbitt.net>
|
|
*
|
|
* By default will write to path/to/logger/ + log/filename.log
|
|
* Author url: https://raw.githubusercontent.com/joshnesbitt/logger/master/lib/logger.php
|
|
*
|
|
**/
|
|
class mashsbLogger {
|
|
var $file, $path, $level, $stream, $folder;
|
|
const INFO = 4;
|
|
const DEBUG = 3;
|
|
const WARN = 2;
|
|
const ERROR = 1;
|
|
const FATAL = 0;
|
|
|
|
function __construct($file, $level)
|
|
{
|
|
$this->file = $file;
|
|
$this->level = $level;
|
|
$this->path = MASHSB_PLUGIN_DIR . "logs/$this->file";
|
|
$this->folder = MASHSB_PLUGIN_DIR . "logs";
|
|
$this->start();
|
|
}
|
|
|
|
|
|
function info($string)
|
|
{
|
|
return $this->check_level(self::INFO) ? true : $this->log($string);
|
|
}
|
|
|
|
function warn($string)
|
|
{
|
|
return $this->check_level(self::WARN) ? true : $this->log($string);
|
|
}
|
|
|
|
function debug($string)
|
|
{
|
|
return $this->check_level(self::DEBUG) ? true : $this->log($string);
|
|
}
|
|
|
|
function error($string)
|
|
{
|
|
return $this->check_level(self::ERROR) ? true : $this->log($string);
|
|
}
|
|
|
|
function fatal($string)
|
|
{
|
|
return $this->check_level(self::FATAL) ? true : $this->log($string);
|
|
}
|
|
|
|
function clear()
|
|
{
|
|
$this->close();
|
|
$this->open("w");
|
|
$this->close();
|
|
$this->open();
|
|
}
|
|
|
|
private function check_level($level)
|
|
{
|
|
return $this->level < $level;
|
|
}
|
|
|
|
/* Log - Only when mashshare debug mode is enabled
|
|
*/
|
|
private function log($string)
|
|
{
|
|
global $mashsb_options;
|
|
$enabled = isset($mashsb_options['debug_mode']) ? $mashsb_options['debug_mode'] : false;
|
|
if ($enabled)
|
|
$this->write("[". date('l jS F Y : h:i:sa') . "] ". $string . "\r\n");
|
|
|
|
return false;
|
|
}
|
|
|
|
private function write($string)
|
|
{
|
|
try {
|
|
return ($this->stream === null) ? false : fwrite($this->stream, $string);
|
|
} catch(Exception $e) {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
/* Check if mashshare debug mode is enabled
|
|
*
|
|
* @return bool
|
|
*/
|
|
private function start()
|
|
{
|
|
global $mashsb_options;
|
|
$enabled = isset($mashsb_options['debug_mode']) ? $mashsb_options['debug_mode'] : false;
|
|
if ($enabled)
|
|
return $this->open();
|
|
|
|
return false;
|
|
}
|
|
|
|
/* Check if directory is writable
|
|
*
|
|
* @return bool
|
|
*/
|
|
|
|
function checkDir(){
|
|
$writable = is_writable($this->folder);
|
|
if ($writable)
|
|
return true;
|
|
|
|
return false;
|
|
}
|
|
|
|
/* Open the log file
|
|
*
|
|
* @return stream
|
|
*/
|
|
private function open($mode="a")
|
|
{
|
|
if ($this->checkDir())
|
|
return $this->stream = fopen($this->path, $mode);
|
|
//or die("Cannot write to file '$this->path', please ensure '$this->path' is writable.");
|
|
}
|
|
|
|
private function close()
|
|
{
|
|
return fclose($this->stream);
|
|
}
|
|
|
|
}
|
|
|
|
?>
|