Sådan får du vist CodeIgniter-logfiler i browseren

Ligesom enhver anden side er det nu muligt at læse CodeIgniter-logfiler i browseren. Min søde godhed!

Jeg begyndte at bruge CodeIgniter i min daglige kodning efter at jeg blev medlem af et fantastisk firma. Virksomhedens tech stack inkluderer PHP Framework - blandt andre. Indtil videre har jeg brugt ( og stadig bruger ) Laravel til at bygge nogle fantastiske apps.

Laravel har et fantastisk logningssystem, der er simpelt og elegant. Der er desuden et bibliotek til visning af logfilerne i browseren. At kunne læse logfiler i browseren er godt til fejlfinding og indsigt i applikationer. Især i et produktionsmiljø.

Så her er jeg i CodeIgniters verden og kunne ikke finde et tilsvarende bibliotek til at læse mine logfiler til fejlfinding og indsigt.

Så jeg tog udfordringen op og skabte mit første Open Source-projekt for året - codeigniter-log-viewer.

Anvendelse

Lad os først tilføje det til en afhængighed. Vi kan gøre det ved at udføre:

composer require seunmatt/codeigniter-log-viewer

Derefter kan vi oprette en CodeIgniter applikationscontroller, LogViewerController.php :

private $logViewer;
public function __construct() { $this->logViewer = new \CILogViewer\CILogViewer(); //...}
public function index() { echo $this->logViewer->showLogs(); return;}

Hvad vi gjorde er at instantiere $ logViewer i konstruktøren og derefter ekko resultatet af showLogs () i funktionen index () .

Den showLogs () metode til CodeIgniter-log-seer vil parse indholdet af logfilerne i ansøgningen / logs . Det returnerer det til visning i browseren.

Endelig kan vi kortlægge enhver valgfri rute til det indeks (), vi oprettede ovenfor. Dette kan gøres ved at tilføje en post til $ route array i application / config / routes.php:

$route['logs'] = "logViewerController/index";

Nu kan vi besøge / logge i browseren og se alle logfilerne der. Det er også muligt at slette og downloade logfilerne.

Bemærk : Det tilrådes at bruge en beskyttet rute i produktionsmiljøet for at undgå generel offentlig adgang.

Hvordan det virker

Internt læste biblioteket navnet på alle de logfiler, der er tilgængelige i standardlogbiblioteket, i et array og vender det om. Hvis der ikke er angivet nogen fil i URL-forespørgselsparametrene, behandles den seneste logfil som standard for visning.

Behandling af en logfil til visning indebærer læsning af dens indhold, brug af regex til at bestemme logniveauet og CSS-klassen og ikonet for hver post.

Hver post kontrolleres også for at vide, om det er en ny loglinje eller en fortsættelse af den forrige linje (på grund af en nylinjetegn ).

Endelig behandles logposterne til HTML-indhold, der derefter sendes til browseren til visning.

Den komplette kildekode er tilgængelig på Github, hvis du vil lege med den eller / og tilpasse den til brug i andre rammer.

Konklusion

Nu er det nemmere og hurtigere at debugge CodeIgniter-applikationen - selv i produktionen. Spred ordet til venner og kolleger på arbejdspladsen.

Jeg vil gerne høre om din oplevelse ( og meninger ) om at bruge biblioteket i kommentarsektionen. Tak!

Besøg Github Link