Logger path accepts simple templates
This commit is contained in:
parent
c64d97fae6
commit
f254e7bb1e
5 changed files with 46 additions and 5 deletions
|
@ -8,7 +8,7 @@ dbUser = "test"
|
||||||
dbPass = "test"
|
dbPass = "test"
|
||||||
filesPath = "./data/files/"
|
filesPath = "./data/files/"
|
||||||
thumbsPath = "./data/thumbs/"
|
thumbsPath = "./data/thumbs/"
|
||||||
logsPath = "./data/logs/"
|
logsPath = "./data/logs/{yyyy-mm}.log"
|
||||||
mediaPath = "./public_html/media/"
|
mediaPath = "./public_html/media/"
|
||||||
title = "szurubooru"
|
title = "szurubooru"
|
||||||
salt = "1A2/$_4xVa"
|
salt = "1A2/$_4xVa"
|
||||||
|
|
|
@ -11,7 +11,7 @@ class GetLogJob extends AbstractPageJob
|
||||||
//parse input
|
//parse input
|
||||||
$page = max(1, intval($page));
|
$page = max(1, intval($page));
|
||||||
$name = str_replace(['/', '\\'], '', $name); //paranoia mode
|
$name = str_replace(['/', '\\'], '', $name); //paranoia mode
|
||||||
$path = TextHelper::absolutePath(getConfig()->main->logsPath . DS . $name);
|
$path = TextHelper::absolutePath(dirname(getConfig()->main->logsPath) . DS . $name);
|
||||||
if (!file_exists($path))
|
if (!file_exists($path))
|
||||||
throw new SimpleNotFoundException('Specified log doesn\'t exist');
|
throw new SimpleNotFoundException('Specified log doesn\'t exist');
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@ class ListLogsJob extends AbstractJob
|
||||||
$path = TextHelper::absolutePath(getConfig()->main->logsPath);
|
$path = TextHelper::absolutePath(getConfig()->main->logsPath);
|
||||||
|
|
||||||
$logs = [];
|
$logs = [];
|
||||||
foreach (glob($path . DS . '*.log') as $log)
|
foreach (glob(dirname($path) . DS . '*.log') as $log)
|
||||||
$logs []= basename($log);
|
$logs []= basename($log);
|
||||||
|
|
||||||
usort($logs, function($a, $b)
|
usort($logs, function($a, $b)
|
||||||
|
|
|
@ -5,11 +5,18 @@ class Logger
|
||||||
static $config;
|
static $config;
|
||||||
static $autoFlush;
|
static $autoFlush;
|
||||||
static $buffer;
|
static $buffer;
|
||||||
|
static $path;
|
||||||
|
|
||||||
public static function init()
|
public static function init()
|
||||||
{
|
{
|
||||||
self::$autoFlush = true;
|
self::$autoFlush = true;
|
||||||
self::$buffer = [];
|
self::$buffer = [];
|
||||||
|
self::$path = self::getLogPath();
|
||||||
|
$dir = dirname(self::$path);
|
||||||
|
if (!is_dir($dir))
|
||||||
|
mkdir($dir, 0777, true);
|
||||||
|
#if (!is_writable(self::$path))
|
||||||
|
# throw new SimpleException('Cannot write logs to "' . self::$path . '". Check access rights.');
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function bufferChanges()
|
public static function bufferChanges()
|
||||||
|
@ -19,7 +26,7 @@ class Logger
|
||||||
|
|
||||||
public static function flush()
|
public static function flush()
|
||||||
{
|
{
|
||||||
$fh = fopen(self::getLogPath(), 'ab');
|
$fh = fopen(self::$path, 'ab');
|
||||||
if (!$fh)
|
if (!$fh)
|
||||||
throw new SimpleException('Cannot write to log files');
|
throw new SimpleException('Cannot write to log files');
|
||||||
if (flock($fh, LOCK_EX))
|
if (flock($fh, LOCK_EX))
|
||||||
|
@ -36,7 +43,11 @@ class Logger
|
||||||
|
|
||||||
public static function getLogPath()
|
public static function getLogPath()
|
||||||
{
|
{
|
||||||
return TextHelper::absolutePath(getConfig()->main->logsPath . DS . date('Y-m') . '.log');
|
return TextHelper::absolutePath(
|
||||||
|
TextHelper::replaceTokens(getConfig()->main->logsPath, [
|
||||||
|
'yyyy' => date('Y'),
|
||||||
|
'mm' => date('m'),
|
||||||
|
'dd' => date('d')]));
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function log($text, array $tokens = [])
|
public static function log($text, array $tokens = [])
|
||||||
|
|
|
@ -16,4 +16,34 @@ class MiscTest extends AbstractTest
|
||||||
$this->assert->areEqual($text, TextHelper::decrypt(TextHelper::encrypt($text)));
|
$this->assert->areEqual($text, TextHelper::decrypt(TextHelper::encrypt($text)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function testLogging()
|
||||||
|
{
|
||||||
|
$logPath = __DIR__ . '/logs/{yyyy}-{mm}-{dd}.log';
|
||||||
|
$realLogPath = __DIR__ . '/logs/' . date('Y-m-d') . '.log';
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
getConfig()->main->logsPath = $logPath;
|
||||||
|
$this->assert->doesNotThrow(function()
|
||||||
|
{
|
||||||
|
Logger::init();
|
||||||
|
});
|
||||||
|
|
||||||
|
$this->assert->isFalse(file_exists($realLogPath));
|
||||||
|
$this->assert->doesNotThrow(function()
|
||||||
|
{
|
||||||
|
Logger::log('Simple text');
|
||||||
|
});
|
||||||
|
$this->assert->isTrue(file_exists($realLogPath));
|
||||||
|
|
||||||
|
$x = file_get_contents($realLogPath);
|
||||||
|
$this->assert->isTrue(strpos($x, 'Simple text') !== false);
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
if (file_exists($realLogPath))
|
||||||
|
unlink($realLogPath);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue