2017 © Pedro Peláez
 

library codeigniter-log-viewer

This is a simple Log Viewer for viewing Code Igniter log files on the browser

image

seunmatt/codeigniter-log-viewer

This is a simple Log Viewer for viewing Code Igniter log files on the browser

  • Sunday, March 25, 2018
  • by seunmatt
  • Repository
  • 2 Watchers
  • 15 Stars
  • 309 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 5 Forks
  • 4 Open issues
  • 3 Versions
  • 106 % Grown

The README.md

CodeIgniter Log Viewer

Latest Stable Version Total Downloads License, (*1)

This is a simple Log Viewer for viewing CodeIgniter logs in the browser or via API calls (that returns a JSON response), (*2)

This project is inspired by the laravel-log-viewer project., (*3)

A typical log view looks like this:, (*4)

sample.png, (*5)

Usage

For CodeIgniter 3, see this reference guide, (*6)

Requirements

  • PHP >= 7.4
  • CodeIgniter 4

Composer Installation

composer require seunmatt/codeigniter-log-viewer

Controller Integration for Browser Display

All that is required is to execute the showLogs() method in a Controller that is mapped to a route:, (*7)

A typical Controller (LogViewerController.php) will have the following content:, (*8)

namespace App\Controllers;
use CILogViewer\CILogViewer;

class LogViewerController extends BaseController
{
    public function index() {
        $logViewer = new CILogViewer();
        return $logViewer->showLogs();
    }
}

Then the route app/Config/Routes.php can be configured like:, (*9)

$routes->get('logs', "LogViewerController::index");

And that's all! If you visit /logs on your browser you should see all the logs that are in writable/logs folder and their content, (*10)

Configuration

The package allows you to configure some of its parameters by creating a CILogViewer class in CodeIgniter's Config folder and then adding the following variables:, (*11)

  • The folder path for log files can be configured with the $logFolderPath config var., (*12)

  • The file pattern for matching all the log files in the log folder can be configured by adding $logFilePattern config var., (*13)

  • The name of the view that renders the logs page can be changed using the $viewName config var. Please note that this can be a route relative to your View path or a namespace route.

Example configuration file app/Config/CILogViewer.php:, (*14)

<?php
namespace Config;
use CodeIgniter\Config\BaseConfig;

class CILogViewer extends BaseConfig {
    public $logFilePattern = 'log-*.log';
    public $viewName = 'logs'; //where logs exists in app/Views/logs.php
}

Viewing Log Files via API Calls

If you're developing an API Service, powered by CodeIgniter, this library can still be used to view your log files., (*15)

Controller Setup

The setup is the same as that mentioned above: - Create a Controller e.g. ApiLogViewerController.php, - Create a function e.g. index() - In the function, call echo $this->logViewer->showLogs(); - Finally, map your controller function to a route., (*16)

API Commands, (*17)


The API is implemented via a set of query params that can be appended to the /logs path., (*18)

Query:, (*19)

  • /logs?api=list will list all the log files available in the configured folder

Response:, (*20)

```json { "status": true, "log_files": [ { "file_b64": "bG9nLTIwMTgtMDEtMTkucGhw", "file_name": "log-2018-01-19.php" }, { "file_b64": "bG9nLTIwMTgtMDEtMTcucGhw", "file_name": "log-2018-01-17.php" } ] }, (*21)


**file_b64 is the base64 encoded name of the file that will be used in further operations and API calls** Query: - `/logs?api=view&f=bG9nLTIwMTgtMDEtMTcucGhw` will return the logs contained in the log file specified by the `f` parameter. The value of the `f` (*f stands for file*) is the base64 encoded format of the log file name. It is obtained from the `/logs?api=list` API call. A list of all available log files is also returned. Response: ```json { "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" ] } ``` The API Query can also take one last parameter, `sline` that will determine how the logs are returned When it's `true` the logs are returned in a single line: Query: `/logs?api=view&f=bG9nLTIwMTgtMDEtMTkucGhw&sline=true` Response: ```json { "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" }

When it's false (Default), the logs are returned in as an array, where each element is a line in the log file:, (*22)

Query:, (*23)

/logs?api=view&f=bG9nLTIwMTgtMDEtMTkucGhw&sline=false OR logs?api=view&f=bG9nLTIwMTgtMDEtMTkucGhw, (*24)

Response:, (*25)

```json {, (*26)

"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"
]

} ```, (*27)

Query:, (*28)

/logs?api=delete&f=bG9nLTIwMTgtMDEtMTkucGhw will delete a single log file. The f parameter is the base64 encoded name of the file and can be obtained from the view api above., (*29)

Query:, (*30)

/logs?api=delete&f=all will delete all log files in the configured folder path. Take note of the value for f which is the literal 'all'., (*31)

IF A FILE IS TOO LARGE (> 50MB), YOU CAN DOWNLOAD IT WITH THIS API QUERY /logs?dl=bG9nLTIwMTgtMDEtMTcucGhw, (*32)

SECURITY NOTE

It is Highly Recommended that you protect/secure the route for your logs. It should not be an open resource!, (*33)

Change Log

Change Log is available here, (*34)

Author

Contributors

LICENSE

MIT, (*35)

The Versions

25/03 2018

dev-master

9999999-dev

This is a simple Log Viewer for viewing Code Igniter log files on the browser

  Sources   Download

MIT

The Requires

  • php >=5.6.4

 

by Seun Matt

php log viewer code igniter

11/01 2018

1.0.1

1.0.1.0

This is a simple Log Viewer for viewing Code Igniter log files on the browser

  Sources   Download

MIT

The Requires

  • php >=5.6.4

 

by Seun Matt

php log viewer code igniter

11/01 2018

1.0.0

1.0.0.0

This is a simple Log Viewer for viewing Code Igniter log files on the browser

  Sources   Download

MIT

The Requires

  • php >=5.6.4

 

by Seun Matt

php log viewer code igniter