🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# 系统执行日志 * * * * * * * * * * ### 全局范围 ![](https://box.kancloud.cn/5cbb0f2cb8e55ef6593668299a67022a_1916x732.png) * * * * * ### 接口范围 ![](https://box.kancloud.cn/10f2ec0dfb638c81b70016e7359c51ac_1914x725.png) * * * * * 系统的执行日志也就是执行记录功能。 第一张图是 全局范围,意思就是整套系统的任何模块所有的操作记录。 第二张图是 接口范围,意思就是接口模块所有的执行操作记录。 至于数据列表上面的列就不介绍啦~ 看到全局范围 1200多页。。。会不会影响系统速度呢? 看看执行记录的流程就知道咯 1.访问系统 -> 2.记录文件 -> 3.后台手动批量入库 -> 4.干掉已入库文件记录 清空日志是指软删除全局范围中所有的数据库记录,全局范围包含了接口范围喔~ 之前就说过咯,所有的数据删除都是软删除,想要彻底干掉就去回收站介绍里面看看蛤。 下面是系统执行日志写入的函数 ~~~ /** * 写入执行信息记录 */ function write_exe_log($begin = 'app_begin', $end = 'app_end', $type = 0) { if(empty(config('is_write_exe_log'))) : return false; endif; $source_url = empty($_SERVER["HTTP_REFERER"]) ? '未知来源' : $_SERVER["HTTP_REFERER"]; $exe_log['ip'] = request()->ip(); $exe_log['exe_url'] = request()->url(); $exe_log['exe_time'] = debug($begin, $end); $exe_log['exe_memory'] = debug($begin, $end, 'm'); $exe_log['exe_os'] = get_os(); $exe_log['source_url'] = $source_url; $exe_log['session_id'] = session_id(); $exe_log['browser'] = browser_info(); $exe_log['status'] = DATA_NORMAL; $exe_log['create_time'] = TIME_NOW; $exe_log['update_time'] = TIME_NOW; $exe_log['type'] = $type; $exe_log['login_id'] = is_login(); $exe_log_path = "../log/exe_log.php"; file_exists($exe_log_path) && $now_contents = file_get_contents($exe_log_path); $arr = var_export($exe_log, true); empty($now_contents) ? $contents = "<?php\nreturn array (".$arr.");\n" : $contents = str_replace(');', ','. $arr . ');', $now_contents); file_put_contents($exe_log_path, $contents); } ~~~ 这个函数只会在应用结束行为中执行,安装OneBase后默认是不记录日志的,若需要记录则在系统设置中将 is_write_exe_log 这个配置设为启动。 启用后日志会记录在 /log/exe_log.php 文件下,需确保此文件有可写权限。 记录的内容如下图,执行日志入库后此文件内容将被清空转移至数据库中。 ![](https://box.kancloud.cn/d0637816990aaa763149189b32a31d79_792x658.jpg)