forked from GithubBackups/vichan
Add Redis cache configuration and temp logging functionality
This commit is contained in:
parent
ec2f55b88f
commit
38d96b80a5
69
inc/_LOGGER_.php
Executable file
69
inc/_LOGGER_.php
Executable file
@ -0,0 +1,69 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
class logger {
|
||||||
|
private static $log_file = "log.txt";
|
||||||
|
private static $log_file_path = "/var/www/logs/";
|
||||||
|
|
||||||
|
public static function log($message, $includeDate = true) {
|
||||||
|
// check if directory exists
|
||||||
|
if (!file_exists(self::$log_file_path)) {
|
||||||
|
mkdir(self::$log_file_path, 0777, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
// check if file exists
|
||||||
|
if (!file_exists(self::$log_file_path . "/" . self::$log_file)) {
|
||||||
|
file_put_contents(self::$log_file_path . "/" . self::$log_file, "");
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($includeDate) {
|
||||||
|
$date = date('Y-m-d H:i:s');
|
||||||
|
$ip = $_SERVER['REMOTE_ADDR'];
|
||||||
|
$log = "$date - $ip \n$message\n-------------------\n";
|
||||||
|
} else {
|
||||||
|
$log = "$message\n-------------------\n";
|
||||||
|
}
|
||||||
|
|
||||||
|
file_put_contents(self::$log_file_path . "/" . self::$log_file, $log, FILE_APPEND);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function arrayToLog($array, $includeDate = true) {
|
||||||
|
$log = print_r($array, true);
|
||||||
|
self::log($log, $includeDate);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function stackTraceLog( $callStack, $includeDate = true ) {
|
||||||
|
$log = "Stack trace:\n";
|
||||||
|
try {
|
||||||
|
// $log .= "Got: " . $callStack[0]['file'] . " : " . $callStack[0]['line'] . "\n";
|
||||||
|
|
||||||
|
foreach ($callStack as $key => $value) {
|
||||||
|
$function = isset($value['function']) ? $value['function'] : "unknown";
|
||||||
|
$file = isset($value['file']) ? $value['file'] : "unknown";
|
||||||
|
$line = isset($value['line']) ? $value['line'] : "unknown";
|
||||||
|
|
||||||
|
$message = isset($value['args']) ? print_r($value['args'], true) : "unknown";
|
||||||
|
|
||||||
|
// if ($key == 0) {
|
||||||
|
// $log .= " " . $function . " at: " . $file . " : " . $line . "\n";
|
||||||
|
// $log .= " " . $message[1] . "\n";
|
||||||
|
// continue;
|
||||||
|
// }
|
||||||
|
$log .= " " . $function . " at: " . $file . " : " . $line . "\n";
|
||||||
|
}
|
||||||
|
} catch (Exception $e) {
|
||||||
|
echo '<pre>';
|
||||||
|
echo "Original stack trace: \n";
|
||||||
|
echo $e->getMessage();
|
||||||
|
print_r($callStack->getTrace());
|
||||||
|
echo '</pre>';
|
||||||
|
echo '<pre>';
|
||||||
|
echo 'Current stack trace: \n';
|
||||||
|
echo $e->getMessage();
|
||||||
|
print_r($e->getTrace());
|
||||||
|
echo '</pre>';
|
||||||
|
|
||||||
|
die("Unable to parse stack trace");
|
||||||
|
}
|
||||||
|
self::log($log, $includeDate);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -12,6 +12,7 @@ defined('TINYBOARD') or exit;
|
|||||||
class Cache {
|
class Cache {
|
||||||
private static function buildCache(): CacheDriver {
|
private static function buildCache(): CacheDriver {
|
||||||
global $config;
|
global $config;
|
||||||
|
$isDocker = is_file("/.dockerenv") || is_file("/run/.containerenv");
|
||||||
|
|
||||||
switch ($config['cache']['enabled']) {
|
switch ($config['cache']['enabled']) {
|
||||||
case 'memcached':
|
case 'memcached':
|
||||||
@ -20,12 +21,31 @@ class Cache {
|
|||||||
$config['cache']['memcached']
|
$config['cache']['memcached']
|
||||||
);
|
);
|
||||||
case 'redis':
|
case 'redis':
|
||||||
|
$host = $config['cache']['redis'][0] ?? 'localhost';
|
||||||
|
$port = $config['cache']['redis'][1] ?? 6379;
|
||||||
|
$password = $config['cache']['redis'][2] ?? '';
|
||||||
|
$database = $config['cache']['redis'][3] ?? 1;
|
||||||
|
|
||||||
|
if ($isDocker) {
|
||||||
|
$host = getenv('VICHAN_REDIS_HOST') ?: $host;
|
||||||
|
$port = getenv('VICHAN_REDIS_PORT') ?: $port;
|
||||||
|
$password = getenv('VICHAN_REDIS_PASSWORD') ?: $password;
|
||||||
|
$database = getenv('VICHAN_REDIS_DATABASE') ?: $database;
|
||||||
|
}
|
||||||
|
// $log->log("Cache info:\n"
|
||||||
|
// . 'Cache driver: redis' . "\n"
|
||||||
|
// . '├ Redis host: ' . $host . "\n"
|
||||||
|
// . '├ Redis port: ' . $port . "\n"
|
||||||
|
// . '├ Redis password: ' . str_repeat('*', strlen($password)) . "\n"
|
||||||
|
// . '└ Redis database: ' . $database . "\n"
|
||||||
|
// );
|
||||||
|
|
||||||
return new RedisCacheDriver(
|
return new RedisCacheDriver(
|
||||||
$config['cache']['prefix'],
|
$config['cache']['prefix'],
|
||||||
$config['cache']['redis'][0],
|
$host,
|
||||||
$config['cache']['redis'][1],
|
$port,
|
||||||
$config['cache']['redis'][2],
|
$password,
|
||||||
$config['cache']['redis'][3]
|
$database
|
||||||
);
|
);
|
||||||
case 'apcu':
|
case 'apcu':
|
||||||
return new ApcuCacheDriver;
|
return new ApcuCacheDriver;
|
||||||
|
|||||||
@ -143,27 +143,10 @@
|
|||||||
// Configure cache
|
// Configure cache
|
||||||
if ($redis_enabled) {
|
if ($redis_enabled) {
|
||||||
$config['cache']['enabled'] = 'redis';
|
$config['cache']['enabled'] = 'redis';
|
||||||
$config['cache']['redis'] = [
|
|
||||||
'host' => getenv('VICHAN_REDIS_HOST') ?: 'localhost',
|
|
||||||
'port' => (int)(getenv('VICHAN_REDIS_PORT') ?: 6379),
|
|
||||||
'password' => getenv('VICHAN_REDIS_PASSWORD') ?: '',
|
|
||||||
'database' => 1,
|
|
||||||
];
|
|
||||||
} else {
|
} else {
|
||||||
$config['cache']['enabled'] = 'php';
|
$config['cache']['enabled'] = 'php';
|
||||||
}
|
}
|
||||||
|
|
||||||
// Configure sessions to use Redis if enabled
|
|
||||||
if ($redis_enabled) {
|
|
||||||
$config['session']['enabled'] = 'redis';
|
|
||||||
$config['session']['redis'] = [
|
|
||||||
'host' => getenv('VICHAN_REDIS_HOST') ?: 'localhost',
|
|
||||||
'port' => (int)(getenv('VICHAN_REDIS_PORT') ?: 6379),
|
|
||||||
'password' => getenv('VICHAN_REDIS_PASSWORD') ?: '',
|
|
||||||
'database' => 1,
|
|
||||||
];
|
|
||||||
}
|
|
||||||
|
|
||||||
// Cache timeout for cached objects
|
// Cache timeout for cached objects
|
||||||
$config['cache']['timeout'] = 60 * 60 * 48; // 48 hours
|
$config['cache']['timeout'] = 60 * 60 * 48; // 48 hours
|
||||||
|
|
||||||
@ -1869,6 +1852,15 @@
|
|||||||
// Enable public logs? 0: NO, 1: YES, 2: YES, but drop names
|
// Enable public logs? 0: NO, 1: YES, 2: YES, but drop names
|
||||||
$config['public_logs'] = 0;
|
$config['public_logs'] = 0;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* ====================
|
||||||
|
* Docker settings
|
||||||
|
* ===================
|
||||||
|
*/
|
||||||
|
|
||||||
|
$isDocker = is_file("/.dockerenv") || is_file("/run/.containerenv");
|
||||||
|
$config['docker'] = $isDocker;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ====================
|
* ====================
|
||||||
* Events (PHP 5.3.0+)
|
* Events (PHP 5.3.0+)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user