duongnhathao / codeigniter-log-viewer
这是一个简单的日志查看器,用于在浏览器中查看 Code Igniter 的日志文件
Requires
- php: >=7.1
This package is not auto-updated.
Last update: 2024-09-21 18:41:02 UTC
README
这是一个简单的日志查看器,用于在浏览器中查看或通过 API 调用(返回 JSON 响应)CodeIgniter 的日志
此项目受 laravel-log-viewer 项目 的启发。
典型的日志视图如下所示
使用方法
要求
- PHP >= 7.1
Composer 安装
执行
composer require duongnhathao/codeigniter-log-viewer
控制器集成以在浏览器中显示
所需的所有操作是在一个映射到路由的控制器中执行 showLogs()
方法
典型的控制器 (LogViewerController.php) 将包含以下内容
private $logViewer; public function __construct() { parent::__construct(); $this->logViewer = new \CILogViewer\CILogViewer(); //... } public function index() { echo $this->logViewer->showLogs(); return; }
然后,配置路由 (application/config/routes.php) 如下
$route['logs'] = "logViewerController/index";
就这样!如果你在浏览器中访问 /logs
,你应该能看到 application/logs 文件夹中的所有日志及其内容
配置
- 可以通过将
clv_log_folder_path
添加到 CodeIgniter 的config.php
文件中来配置日志文件的文件夹路径,例如:
$config["clv_log_folder_path"] = APPPATH . "logs";
- 可以通过将
clv_log_file_pattern
添加到 CodeIgniter 的config.php
文件中来配置与日志文件夹中所有日志文件匹配的文件模式,例如:
$config["clv_log_file_pattern"] = "log-*.php";
通过 API 调用查看日志文件
如果你正在开发一个由 CodeIgniter 驱动的 API 服务,此库仍然可以用来查看你的日志文件。
控制器设置
设置与上面提到的是相同的
- 创建一个控制器,例如
ApiLogViewerController.php
, - 创建一个函数,例如
index()
- 在函数中,调用
echo $this->logViewer->showLogs();
- 最后,将你的控制器函数映射到一个路由。
API 命令
API 通过一组可以附加到 /logs
路径的查询参数来实现。
查询
/logs?api=list
将列出配置文件夹中可用的所有日志文件
响应
{ "status": true, "log_files": [ { "file_b64": "bG9nLTIwMTgtMDEtMTkucGhw", "file_name": "log-2018-01-19.php" }, { "file_b64": "bG9nLTIwMTgtMDEtMTcucGhw", "file_name": "log-2018-01-17.php" } ] }
file_b64 是将用于后续操作和 API 调用的文件的 base64 编码名称
查询
/logs?api=view&f=bG9nLTIwMTgtMDEtMTcucGhw
将返回由f
参数指定的日志文件中的日志。
f
的值(其中 f 代表文件)是日志文件名称的 base64 编码格式。它可以从上述 /logs?api=list
API 调用中获得。还返回所有可用日志文件的列表。
响应
{ "log_files": [ { "file_b64": "bG9nLTIwMTgtMDEtMTkucGhw", "file_name": "log-2018-01-19.php" }, { "file_b64": "bG9nLTIwMTgtMDEtMTcucGhw", "file_name": "log-2018-01-17.php" } ], "status": true, "logs": [ "ERROR - 2018-01-23 07:12:31 --> 404 Page Not Found: admin/Logs/index", "ERROR - 2018-01-23 07:12:37 --> 404 Page Not Found: admin//index", "ERROR - 2018-01-23 15:23:02 --> 404 Page Not Found: Faviconico/index" ] }
API 查询还可以接受最后一个参数 sline
,它将确定日志如何返回。当它为 true
时,日志以单行返回
查询
/logs?api=view&f=bG9nLTIwMTgtMDEtMTkucGhw&sline=true
响应
{ "log_files": [ { "file_b64": "bG9nLTIwMTgtMDEtMTkucGhw", "file_name": "log-2018-01-19.php" }, { "file_b64": "bG9nLTIwMTgtMDEtMTcucGhw", "file_name": "log-2018-01-17.php" } ], "status": true, "logs": "ERROR - 2018-01-23 07:12:31 --> 404 Page Not Found: admin/Logs/index\r\nERROR - 2018-01-23 07:12:37 --> 404 Page Not Found: admin//index\r\nERROR - 2018-01-23 15:23:02 --> 404 Page Not Found: Faviconico/index\r\n" }
当它为 false
(默认值)时,日志以数组的形式返回,其中每个元素是日志文件中的一行
查询
/logs?api=view&f=bG9nLTIwMTgtMDEtMTkucGhw&sline=false
或 logs?api=view&f=bG9nLTIwMTgtMDEtMTkucGhw
响应
{ "logs": [ "ERROR - 2018-01-23 07:12:31 --> 404 Page Not Found: admin/Logs/index", "ERROR - 2018-01-23 07:12:37 --> 404 Page Not Found: admin//index", "ERROR - 2018-01-23 15:23:02 --> 404 Page Not Found: Faviconico/index" ] }
查询
/logs?api=delete&f=bG9nLTIwMTgtMDEtMTkucGhw
将删除单个日志文件。参数 f 是文件的 base64 编码名称,可以从上述查看 API 中获得。
查询
/logs?api=delete&f=all
将删除配置文件夹路径中的所有日志文件。请注意,参数 f 的值是文本 'all'。
如果文件太大(> 50MB),您可以使用以下 API 查询下载它 /logs?dl=bG9nLTIwMTgtMDEtMTcucGhw
安全注意事项
强烈建议您保护/安全您的日志路由。它不应该是一个公开的资源!
贡献
发现了一个bug?请为它创建一个问题。
想贡献?提交你的拉取请求(们)
记得⭐ 星标这个仓库并与朋友分享
作者
由Duong Nhat Hao 以 ❤️ 的热情制作,基于 Seun Matt