94 lines
2.6 KiB
PHP
94 lines
2.6 KiB
PHP
<?php namespace Phpcmf\Control\Admin;
|
|
|
|
/**
|
|
* https://www.besyun.com
|
|
* BESCMS
|
|
* 本文件是框架系统文件,二次开发时不可以修改本文件
|
|
**/
|
|
|
|
class Sql_log extends \Phpcmf\Common
|
|
{
|
|
|
|
public function __construct() {
|
|
parent::__construct();
|
|
\Phpcmf\Service::V()->assign('menu', \Phpcmf\Service::M('auth')->_admin_menu(
|
|
[
|
|
'前端慢查询记录' => [\Phpcmf\Service::L('Router')->class.'/index', 'fa fa-database'],
|
|
]
|
|
));
|
|
}
|
|
|
|
public function index() {
|
|
|
|
$dir = dr_file_map(WRITEPATH.'database/Sql/');
|
|
$time = (int)\Phpcmf\Service::L('input')->get('time');
|
|
if (!$time) {
|
|
$time = 'sql';
|
|
}
|
|
|
|
$data = $list = [];
|
|
$file = WRITEPATH.'database/Sql/'.$time.'.txt';
|
|
if (filesize($file) > 1024*1024*2) {
|
|
$list[] = [
|
|
$time,
|
|
'',
|
|
'10',
|
|
'message' => '此日志文件大于2MB,请使用Ftp等工具查看此文件:'.$file,
|
|
];
|
|
} else {
|
|
$code = file_get_contents($file);
|
|
if ($code) {
|
|
$data = explode(PHP_EOL, str_replace(array(chr(13), chr(10)), PHP_EOL, $code));
|
|
$data = $data ? array_reverse($data) : [];
|
|
$page = max(1, (int)\Phpcmf\Service::L('input')->get('page'));
|
|
$limit = ($page - 1) * SYS_ADMIN_PAGESIZE;
|
|
$i = $j = 0;
|
|
foreach ($data as $v) {
|
|
$val = dr_string2array($v);
|
|
if ($val && $i >= $limit && $j < SYS_ADMIN_PAGESIZE) {
|
|
$list[] = $val;
|
|
$j ++;
|
|
}
|
|
$i ++;
|
|
}
|
|
}
|
|
}
|
|
|
|
$total = max(0, dr_count($data) - 1);
|
|
|
|
\Phpcmf\Service::V()->assign(array(
|
|
'time' => $time,
|
|
'mdir' => $dir,
|
|
'list' => $list,
|
|
'total' => $total,
|
|
'used' => is_file(WRITEPATH.'database/sql.lock'),
|
|
'mypages' => \Phpcmf\Service::L('input')->page(dr_url(\Phpcmf\Service::L('Router')->class.'/index', ['time' => $time]), $total, 'admin')
|
|
));
|
|
\Phpcmf\Service::V()->display('sql_log.html');
|
|
}
|
|
|
|
public function add() {
|
|
|
|
$file = WRITEPATH.'database/sql.lock';
|
|
if (is_file($file)) {
|
|
unlink($file);
|
|
} else {
|
|
$size = file_put_contents($file, 'ok');
|
|
if (!$size) {
|
|
dr_mkdirs(dirname($file));
|
|
$this->_json(0, dr_lang('Cache目录权限不可写入'));
|
|
}
|
|
}
|
|
|
|
$this->_json(1, dr_lang('操作成功'));
|
|
}
|
|
|
|
public function del() {
|
|
|
|
dr_dir_delete(WRITEPATH.'database/Sql/');
|
|
|
|
$this->_json(1, dr_lang('操作成功'));
|
|
}
|
|
|
|
}
|