Log Viewer: a bundle for your Symfony app. It provides a user-friendly UI to read, filter and search log files.
Out of the box it will read your Monolog logs in the var/log
directory, but can be configured to
read logs from any directory.
%kernel.logs_dir%
directory,Use composer.
composer require fdekker/log-viewer-bundle
If you don't use Symfony Flex, you'll need to manually enable the bundle:
# /config/bundles.php
return [
// ...
FD\LogViewer\FDLogViewerBundle::class => ['all' => true],
];
And add the route by creating file /config/routes/fd_log_viewer.php
:
<?php
use Symfony\Component\Routing\Loader\Configurator\RoutingConfigurator;
return static function (RoutingConfigurator $routingConfigurator): void {
$routingConfigurator->import('.', 'fd_symfony_log_viewer')->prefix('/log-viewer');
};
⚠ Ensure access to your logs are secure by adding the line below to /config/packages/security.php
:
return static function (SecurityConfig $security): void {
...
$security->accessControl()->path('^/log-viewer')->roles(['ROLE_ADMIN']);
};
After installing the package, publish the front-end assets by running:
php bin/console assets:install
Once the installation is complete, you will be able to access Log Viewer directly in your browser.
By default, it is available at: /log-viewer
on your domain.
Default configuration: (Configuration reference)
fd_log_viewer:
home_route: null
log_files:
monolog:
type: monolog
name: Monolog
finder:
in: "%kernel.logs_dir%"
name: "*.log"
depth: '== 0'
ignoreUnreadableDirs: true
followLinks: false
downloadable: false
deletable: false
start_of_line_pattern: '/^\[\d{4}-\d{2}-\d{2}[^]]*]\s+\S+\.\S+:/'
log_message_pattern: '/^\[(?P<date>[^\]]+)\]\s+(?P<channel>[^\.]+)\.(?P<severity>[^:]+):\s+(?P<message>.*)\s+(?P<context>[[{].*?[\]}])\s+(?P<extra>[[{].*?[\]}])\s+$/s'
date_format: null
hosts:
localhost:
name: Local
host: null
Read more: