Download the PHP package iyogesharma/log-viewer without Composer
On this page you can find all versions of the php package iyogesharma/log-viewer. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download iyogesharma/log-viewer
More information about iyogesharma/log-viewer
Files in iyogesharma/log-viewer
Package log-viewer
Short Description Log Viewer for Laravel with a bounded-memory streaming index engine for large log files. Fork of arcanedev/log-viewer.
License MIT
Homepage https://github.com/iYogesharma/logviewer-laravel
Informations about the package log-viewer
 Observatory theme · see [all screenshots](#themes)
Why this fork?
This package is a fork of ARCANEDEV/LogViewer. It keeps the original Arcanedev\LogViewer\ namespace, configuration keys, routes and public API, so it installs as a drop-in replacement — see Migrating from arcanedev/log-viewer.
Traditional log viewers eventually hit the same wall: opening or searching a large file requires reading the whole thing into memory. Version 2 introduces a binary sidecar index and reads only the entries needed for the current request.
| Capability | What it provides |
|---|---|
| Bounded-memory streaming | Paginate and search multi-megabyte logs without a whole-file read |
| Safe cold start | Serve a bounded tail while an index is warming |
| Incremental indexing | Append new log entries without rebuilding unchanged data |
| Format drivers | Classic Laravel line logs and JSON logs behind one interface |
| Operational UI | Error trends, severity health, pattern discovery, and whole-file searches |
| Familiar management | Date and level filters, downloads, opt-in deletion, localization, and API access |
Requirements
- PHP
7.3or newer - Laravel
8.xor newer - JSON extension
- A writable index location when streaming is enabled
The dependency matrix is intentionally broad. Validate your exact PHP/Laravel combination in CI before a production upgrade.
Quick start
Installing straight from GitHub instead
Add the repository to your application's `composer.json`, then require the package as usual:Publish configuration when you need to customize storage, streaming, routes, or themes:
Open the viewer at:
The default remains bootstrap-5, so upgrading does not silently switch the interface.
Themes
Version 2 includes two self-contained themes. Both support automatic, light, and dark color modes and require no npm installation or asset compilation.
| Observatory | Console | |
|---|---|---|
| Best for | Support and operations teams | Developers and message-first debugging |
| Dashboard | Error trends, risk signals, severity health, highest-risk files | Compact level distribution |
| Log files | Non-scrolling investigation list | Dense level-count grid |
| Investigation | Dynamic dimensions and whole-file pattern searches | Server search and visible-page filtering |
| Details | Conditional stack/context expansion | Conditional stack/context expansion |
| Copy tools | Summaries, visible entries, complete entries | Context and entry copy actions |
Observatory
The Observatory theme turns indexed counts into support-oriented signals (dashboard screenshot above):
- High-severity movement across indexed dates
- Peak-volume and highest-risk files
- Hourly high-severity activity for the current result set
- Dynamically discovered URLs, routes, processes, channels, model IDs, classes, services, and JSON fields
- Whole-file server searches that remain active across pagination
- Strict analysis budgets so UI discovery never becomes a second log parser
Pattern suggestions are sampled from the current page, but selecting one searches the complete selected log.
Console
The Console theme keeps the interface dense and direct:
- Whole-file search and level filters
- Date switching and visible-page filtering
- Message-first log rows
- Conditional stack and context details
- Download, opt-in delete, copy, and pagination controls
Both themes apply the saved color mode before first paint to prevent light/dark flicker during navigation — the Console screenshots above show the same theme in dark and light modes.
Large-file streaming
Streaming is enabled by default for files above the inline threshold:
Warm indexes during deployment
Index one date:
When logs live on a read-only or shared mount, configure a dedicated writable directory:
Indexes are disposable caches. Source log files remain authoritative.
Bounded UI analytics
Dynamic pattern discovery intentionally has hard limits:
- Current paginator page only
- At most 75 entries inspected
- Approximately 512 KB total analysis budget
- Capped header, context, and stack samples
- Capped dimension and value cardinality
- No full-file traversal from Blade
The interface shows the number of entries and bytes sampled. Applying a suggested value uses the normal server search route across the complete file.
Log formats
The streaming registry supports:
- Classic Laravel/Monolog line logs
- JSON log records
Pattern discovery does not require JSON. It can infer useful values from route-like text, labeled fields, environments, messages, classes, services, and optional context data.
Custom formats can be added through the format-driver contract. Test representative production logs before enabling streaming globally.
Configuration
The main options live in config/log-viewer.php:
- Log storage path and filename pattern
- Locale
- Theme
- Route prefix and middleware
- Entries per page
- Formatter/driver
- Streaming threshold and index location
- Tail fallback and build concurrency
- Download and menu behavior
- Delete controls (
observatoryandconsolethemes), disabled by default
Delete controls
Log deletion is destructive and irreversible, so the delete buttons in the two v2 themes are hidden by default:
Set it to true — or bind it to an environment variable — to show them:
This flag controls the UI of the observatory and console themes only. The log-viewer::logs.delete route stays registered, because the bootstrap themes still use it; apply route middleware if deletion must be forbidden outright.
Detailed package documentation remains available in:
- Installation and setup
- Configuration
- Usage
- Upgrading from 1.2.x
Migrating from arcanedev/log-viewer
The namespace, facade, configuration keys, route names, views and published assets are unchanged, so switching packages is a Composer operation:
Your existing config/log-viewer.php keeps working — merge the new streaming and delete keys when convenient. Existing Arcanedev\LogViewer\ imports, LogViewer:: facade calls and log-viewer:: route names need no edits.
The one code change to check for: if your application implements the Arcanedev\LogViewer\Contracts\LogViewer contract itself, add the new logForViewer($date) method. See the upgrade guide.
Upgrading to v2
Version 2 contains public-contract and runtime changes. Before deployment:
- Merge the new configuration.
- Update custom
LogViewercontract implementations withlogForViewer($date). - Prepare a writable index directory.
- Test representative line and JSON logs.
- Warm large indexes if first-request latency matters.
See the complete upgrade guide, including opt-out and rollback instructions.
Testing
The suite covers classic behavior, streaming indexes, format handling, PCRE safety, and real-route rendering for both modern themes.
Localization
The package includes translations for Arabic, Bengali, Bulgarian, Chinese, Dutch, English, Estonian, French, German, Hungarian, Indonesian, Italian, Japanese, Korean, Malay, Persian, Polish, Portuguese, Romanian, Russian, Sinhala, Spanish, Swedish, Thai, Turkish, Ukrainian, and Uzbek.
Legacy Bootstrap preview
Show the inherited Bootstrap interface
  Security
Please do not report security vulnerabilities through public issues. Contact the repository maintainer privately with reproduction details and affected versions.
Credits
This fork builds on the original ARCANEDEV LogViewer project and its contributors, and remains MIT licensed.
- ARCANEDEV — original author
- Yogesh Sharma — fork maintainer
- All contributors
License
Released under the MIT License.
All versions of log-viewer with dependencies
ext-json Version *
arcanedev/support Version >=8.0
psr/log Version ^1.0|^2.0|^3.0