mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-07 10:41:40 +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();
|
||||
if ($display_type === 'file')
|
||||
{
|
||||
$debug_file = RX_BASEDIR . 'files/debug/' . getInternalDateTime(RX_TIME, 'Ymd') . '.php';
|
||||
if (!file_exists($debug_file) || !filesize($debug_file))
|
||||
$log_filename = config('debug.log_filename') ?: 'files/debug/YYYYMMDD.php';
|
||||
$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";
|
||||
}
|
||||
|
|
@ -218,7 +225,7 @@ class DisplayHandler extends Handler
|
|||
{
|
||||
$phpheader = '';
|
||||
}
|
||||
FileHandler::writeFile($debug_file, $phpheader . $content, 'a');
|
||||
FileHandler::writeFile($log_filename, $phpheader . $content, 'a');
|
||||
return '';
|
||||
}
|
||||
else
|
||||
|
|
|
|||
|
|
@ -92,6 +92,7 @@ return array(
|
|||
'log_slow_queries' => 0,
|
||||
'log_slow_triggers' => 0,
|
||||
'log_slow_widgets' => 0,
|
||||
'log_filename' => null,
|
||||
'display_type' => 'comment',
|
||||
'display_to' => 'admin',
|
||||
'allow' => array(),
|
||||
|
|
|
|||
|
|
@ -408,7 +408,7 @@ class Debug
|
|||
{
|
||||
// Collect debug information.
|
||||
$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(),
|
||||
'request' => (object)array(
|
||||
'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_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
|
||||
$allowed_ip = array_map('trim', preg_split('/[\r\n]/', $vars->debug_allowed_ip));
|
||||
$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_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_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_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_comment = 'HTML source comment';
|
||||
$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_admin = 'Administrator only';
|
||||
$lang->debug_display_to_ip = 'Visitors from IP adresses listed below';
|
||||
$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->autoinstall = 'EasyInstall';
|
||||
$lang->last_week = 'Last Week';
|
||||
|
|
|
|||
|
|
@ -116,11 +116,14 @@ $lang->debug_seconds = '초 이상 소요시 기록';
|
|||
$lang->debug_display_type = '디버그 정보 표시 방법';
|
||||
$lang->debug_display_type_comment = 'HTML 소스에 표시 (주석)';
|
||||
$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_admin = '관리자에게만 표시';
|
||||
$lang->debug_display_to_ip = '아래 IP의 방문자에게만 표시';
|
||||
$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->autoinstall = '쉬운 설치';
|
||||
$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>
|
||||
</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">
|
||||
<label class="x_control-label" for="debug_log_slow_widgets">{$lang->debug_display_to}</label>
|
||||
<div class="x_controls">
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue