mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-05-09 12:02:24 +09:00
Make debug log filename configurable
This commit is contained in:
parent
e1d85ffb22
commit
7c4fc37dd3
8 changed files with 50 additions and 6 deletions
|
|
@ -209,8 +209,15 @@ class DisplayHandler extends Handler
|
||||||
$content = ob_get_clean();
|
$content = ob_get_clean();
|
||||||
if ($display_type === 'file')
|
if ($display_type === 'file')
|
||||||
{
|
{
|
||||||
$debug_file = RX_BASEDIR . 'files/debug/' . getInternalDateTime(RX_TIME, 'Ymd') . '.php';
|
$log_filename = config('debug.log_filename') ?: 'files/debug/YYYYMMDD.php';
|
||||||
if (!file_exists($debug_file) || !filesize($debug_file))
|
$log_filename = str_replace(array('YYYY', 'YY', 'MM', 'DD'), array(
|
||||||
|
getInternalDateTime(RX_TIME, 'Y'),
|
||||||
|
getInternalDateTime(RX_TIME, 'y'),
|
||||||
|
getInternalDateTime(RX_TIME, 'm'),
|
||||||
|
getInternalDateTime(RX_TIME, 'd'),
|
||||||
|
), $log_filename);
|
||||||
|
$log_filename = RX_BASEDIR . $log_filename;
|
||||||
|
if (!file_exists($log_filename) || !filesize($log_filename))
|
||||||
{
|
{
|
||||||
$phpheader = '<?php exit; ?>' . "\n";
|
$phpheader = '<?php exit; ?>' . "\n";
|
||||||
}
|
}
|
||||||
|
|
@ -218,7 +225,7 @@ class DisplayHandler extends Handler
|
||||||
{
|
{
|
||||||
$phpheader = '';
|
$phpheader = '';
|
||||||
}
|
}
|
||||||
FileHandler::writeFile($debug_file, $phpheader . $content, 'a');
|
FileHandler::writeFile($log_filename, $phpheader . $content, 'a');
|
||||||
return '';
|
return '';
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
||||||
|
|
@ -92,6 +92,7 @@ return array(
|
||||||
'log_slow_queries' => 0,
|
'log_slow_queries' => 0,
|
||||||
'log_slow_triggers' => 0,
|
'log_slow_triggers' => 0,
|
||||||
'log_slow_widgets' => 0,
|
'log_slow_widgets' => 0,
|
||||||
|
'log_filename' => null,
|
||||||
'display_type' => 'comment',
|
'display_type' => 'comment',
|
||||||
'display_to' => 'admin',
|
'display_to' => 'admin',
|
||||||
'allow' => array(),
|
'allow' => array(),
|
||||||
|
|
|
||||||
|
|
@ -408,7 +408,7 @@ class Debug
|
||||||
{
|
{
|
||||||
// Collect debug information.
|
// Collect debug information.
|
||||||
$data = (object)array(
|
$data = (object)array(
|
||||||
'timestamp' => DateTime::formatTimestampForCurrentUser('Y-m-d H:i:s P', RX_TIME),
|
'timestamp' => DateTime::formatTimestamp('Y-m-d H:i:s', RX_TIME),
|
||||||
'url' => getCurrentPageUrl(),
|
'url' => getCurrentPageUrl(),
|
||||||
'request' => (object)array(
|
'request' => (object)array(
|
||||||
'method' => $_SERVER['REQUEST_METHOD'] . ($_SERVER['REQUEST_METHOD'] !== \Context::getRequestMethod() ? (' (' . \Context::getRequestMethod() . ')') : ''),
|
'method' => $_SERVER['REQUEST_METHOD'] . ($_SERVER['REQUEST_METHOD'] !== \Context::getRequestMethod() ? (' (' . \Context::getRequestMethod() . ')') : ''),
|
||||||
|
|
|
||||||
|
|
@ -710,6 +710,28 @@ class adminAdminController extends admin
|
||||||
Rhymix\Framework\Config::set('debug.display_type', strval($vars->debug_display_type) ?: 'comment');
|
Rhymix\Framework\Config::set('debug.display_type', strval($vars->debug_display_type) ?: 'comment');
|
||||||
Rhymix\Framework\Config::set('debug.display_to', strval($vars->debug_display_to) ?: 'admin');
|
Rhymix\Framework\Config::set('debug.display_to', strval($vars->debug_display_to) ?: 'admin');
|
||||||
|
|
||||||
|
// Log filename
|
||||||
|
$log_filename = strval($vars->debug_log_filename);
|
||||||
|
$log_filename_today = str_replace(array('YYYY', 'YY', 'MM', 'DD'), array(
|
||||||
|
getInternalDateTime(RX_TIME, 'Y'),
|
||||||
|
getInternalDateTime(RX_TIME, 'y'),
|
||||||
|
getInternalDateTime(RX_TIME, 'm'),
|
||||||
|
getInternalDateTime(RX_TIME, 'd'),
|
||||||
|
), $log_filename);
|
||||||
|
if (file_exists(RX_BASEDIR . $log_filename_today) && !is_writable(RX_BASEDIR . $log_filename_today))
|
||||||
|
{
|
||||||
|
return new Object(-1, 'msg_debug_log_filename_not_writable');
|
||||||
|
}
|
||||||
|
if (!file_exists(dirname(RX_BASEDIR . $log_filename)) && !FileHandler::makeDir(dirname(RX_BASEDIR . $log_filename)))
|
||||||
|
{
|
||||||
|
return new Object(-1, 'msg_debug_log_filename_not_writable');
|
||||||
|
}
|
||||||
|
if (!is_writable(dirname(RX_BASEDIR . $log_filename)))
|
||||||
|
{
|
||||||
|
return new Object(-1, 'msg_debug_log_filename_not_writable');
|
||||||
|
}
|
||||||
|
Rhymix\Framework\Config::set('debug.log_filename', $log_filename);
|
||||||
|
|
||||||
// IP access control
|
// IP access control
|
||||||
$allowed_ip = array_map('trim', preg_split('/[\r\n]/', $vars->debug_allowed_ip));
|
$allowed_ip = array_map('trim', preg_split('/[\r\n]/', $vars->debug_allowed_ip));
|
||||||
$allowed_ip = array_unique(array_filter($allowed_ip, function($item) {
|
$allowed_ip = array_unique(array_filter($allowed_ip, function($item) {
|
||||||
|
|
|
||||||
|
|
@ -496,6 +496,7 @@ class adminAdminView extends admin
|
||||||
Context::set('debug_log_slow_queries', Rhymix\Framework\Config::get('debug.log_slow_queries'));
|
Context::set('debug_log_slow_queries', Rhymix\Framework\Config::get('debug.log_slow_queries'));
|
||||||
Context::set('debug_log_slow_triggers', Rhymix\Framework\Config::get('debug.log_slow_triggers'));
|
Context::set('debug_log_slow_triggers', Rhymix\Framework\Config::get('debug.log_slow_triggers'));
|
||||||
Context::set('debug_log_slow_widgets', Rhymix\Framework\Config::get('debug.log_slow_widgets'));
|
Context::set('debug_log_slow_widgets', Rhymix\Framework\Config::get('debug.log_slow_widgets'));
|
||||||
|
Context::set('debug_log_filename', Rhymix\Framework\Config::get('debug.log_filename') ?: 'files/debug/YYYYMMDD.php');
|
||||||
Context::set('debug_display_type', Rhymix\Framework\Config::get('debug.display_type'));
|
Context::set('debug_display_type', Rhymix\Framework\Config::get('debug.display_type'));
|
||||||
Context::set('debug_display_to', Rhymix\Framework\Config::get('debug.display_to'));
|
Context::set('debug_display_to', Rhymix\Framework\Config::get('debug.display_to'));
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -119,11 +119,14 @@ $lang->debug_seconds = 'seconds or longer';
|
||||||
$lang->debug_display_type = 'Display Debug Info As';
|
$lang->debug_display_type = 'Display Debug Info As';
|
||||||
$lang->debug_display_type_comment = 'HTML source comment';
|
$lang->debug_display_type_comment = 'HTML source comment';
|
||||||
$lang->debug_display_type_panel = 'On-screen panel';
|
$lang->debug_display_type_panel = 'On-screen panel';
|
||||||
$lang->debug_display_type_file = 'Write to file (files/debug)';
|
$lang->debug_display_type_file = 'Write to file';
|
||||||
$lang->debug_display_to = 'Display Debug Info To';
|
$lang->debug_display_to = 'Display Debug Info To';
|
||||||
$lang->debug_display_to_admin = 'Administrator only';
|
$lang->debug_display_to_admin = 'Administrator only';
|
||||||
$lang->debug_display_to_ip = 'Visitors from IP adresses listed below';
|
$lang->debug_display_to_ip = 'Visitors from IP adresses listed below';
|
||||||
$lang->debug_display_to_everyone = 'Everyone';
|
$lang->debug_display_to_everyone = 'Everyone';
|
||||||
|
$lang->debug_log_filename = 'Log filename';
|
||||||
|
$lang->about_debug_log_filename = 'YYYYMMDD in the filename will be replaced with the current date.<br>It is recommended to split the log file by date to prevent it from getting too large.';
|
||||||
|
$lang->msg_debug_log_filename_not_writable = 'Rhymix cannot write log files in the specified path.';
|
||||||
$lang->debug_allowed_ip = 'Allowed IP addresses';
|
$lang->debug_allowed_ip = 'Allowed IP addresses';
|
||||||
$lang->autoinstall = 'EasyInstall';
|
$lang->autoinstall = 'EasyInstall';
|
||||||
$lang->last_week = 'Last Week';
|
$lang->last_week = 'Last Week';
|
||||||
|
|
|
||||||
|
|
@ -116,11 +116,14 @@ $lang->debug_seconds = '초 이상 소요시 기록';
|
||||||
$lang->debug_display_type = '디버그 정보 표시 방법';
|
$lang->debug_display_type = '디버그 정보 표시 방법';
|
||||||
$lang->debug_display_type_comment = 'HTML 소스에 표시 (주석)';
|
$lang->debug_display_type_comment = 'HTML 소스에 표시 (주석)';
|
||||||
$lang->debug_display_type_panel = '화면에 표시 (패널)';
|
$lang->debug_display_type_panel = '화면에 표시 (패널)';
|
||||||
$lang->debug_display_type_file = '파일에 기록 (files/debug)';
|
$lang->debug_display_type_file = '파일에 기록';
|
||||||
$lang->debug_display_to = '디버그 정보 표시 대상';
|
$lang->debug_display_to = '디버그 정보 표시 대상';
|
||||||
$lang->debug_display_to_admin = '관리자에게만 표시';
|
$lang->debug_display_to_admin = '관리자에게만 표시';
|
||||||
$lang->debug_display_to_ip = '아래 IP의 방문자에게만 표시';
|
$lang->debug_display_to_ip = '아래 IP의 방문자에게만 표시';
|
||||||
$lang->debug_display_to_everyone = '모두에게 표시';
|
$lang->debug_display_to_everyone = '모두에게 표시';
|
||||||
|
$lang->debug_log_filename = '디버그 정보 기록 파일';
|
||||||
|
$lang->about_debug_log_filename = '파일명에 YYYYMMDD가 포함된 경우 날짜별로 파일을 분리하여 기록합니다.<br>파일을 분리하지 않으면 용량이 매우 커질 수 있으니 주의하십시오.';
|
||||||
|
$lang->msg_debug_log_filename_not_writable = '지정한 경로에 로그 파일을 작성할 수 없습니다.';
|
||||||
$lang->debug_allowed_ip = '디버그 허용 IP';
|
$lang->debug_allowed_ip = '디버그 허용 IP';
|
||||||
$lang->autoinstall = '쉬운 설치';
|
$lang->autoinstall = '쉬운 설치';
|
||||||
$lang->last_week = '지난주';
|
$lang->last_week = '지난주';
|
||||||
|
|
|
||||||
|
|
@ -57,6 +57,13 @@
|
||||||
<label for="debug_display_type_file" class="x_inline"><input type="radio" name="debug_display_type" id="debug_display_type_file" value="file" checked="checked"|cond="$debug_display_type=='file'" /> {$lang->debug_display_type_file}</label>
|
<label for="debug_display_type_file" class="x_inline"><input type="radio" name="debug_display_type" id="debug_display_type_file" value="file" checked="checked"|cond="$debug_display_type=='file'" /> {$lang->debug_display_type_file}</label>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div class="x_control-group">
|
||||||
|
<label class="x_control-label" for="debug_log_filename">{$lang->debug_log_filename}</label>
|
||||||
|
<div class="x_controls">
|
||||||
|
<input type="text" name="debug_log_filename" id="debug_log_filename" value="{$debug_log_filename}" />
|
||||||
|
<p class="x_help-block">{$lang->about_debug_log_filename}</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="x_control-group">
|
<div class="x_control-group">
|
||||||
<label class="x_control-label" for="debug_log_slow_widgets">{$lang->debug_display_to}</label>
|
<label class="x_control-label" for="debug_log_slow_widgets">{$lang->debug_display_to}</label>
|
||||||
<div class="x_controls">
|
<div class="x_controls">
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue