duongnhathao/codeigniter-log-viewer

这是一个简单的日志查看器,用于在浏览器中查看 Code Igniter 的日志文件

1.1.4 2022-02-25 07:52 UTC

This package is not auto-updated.

Last update: 2024-09-21 18:41:02 UTC


README

Latest Stable Version Total Downloads License

这是一个简单的日志查看器,用于在浏览器中查看或通过 API 调用(返回 JSON 响应)CodeIgniter 的日志

此项目受 laravel-log-viewer 项目 的启发。

典型的日志视图如下所示

sample.png

使用方法

要求

  • 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=falselogs?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

变更日志

变更日志

许可证

MIT