Nice comes with built-in integration with Monolog. This allows for PSR-3 compliant logging in your application.
The first step is requiring Monolog in your project. You can do this by updating your composer.json
or
running composer require
at the command line.
-
Example
composer.json
:{ "require": { "nice/framework": "~1.0", "monolog/monolog": "~1.11" } }
The run
composer update
at the command line. -
Using the
composer
command line toolcomposer require monolog/monolog:~1.11
With Monolog is installed, the next step is registering the LogExtension
with your Nice Application.
use Nice\Extension\LogExtension;
// ...
$app = new Application();
$app->appendExtension(new LogExtension(array(
'channels' => array(
'default' => array(
'handler' => 'stream',
'level' => 100, // Debug
'options' => array(
'file' => '%app.log_dir%/dev.log'
)
)
)
)));
With the above configuration, Nice will create the following service:
logger.default
is an instance of Monolog\Logger, configured to write to the specified log file on any messages with level DEBUG or higher.
Tip: Check out Monolog documentation for more information on log levels and handlers.
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;
use Nice\Application;
use Nice\Router\RouteCollector;
use Nice\Extension\LogExtension;
$app = new Application();
$app->appendExtension(new LogExtension(array(
'channels' => array(
'default' => array(
'handler' => 'stream',
'level' => 100, // Debug
'options' => array(
'file' => '%app.log_dir%/main.log'
)
)
)
)));
// Configure your routes
$app->set('routes', function (RouteCollector $r) {
$r->map('/', 'home', function (Application $app, Request $request) {
$app->get('logger.default')->debug('User hit the "home" action!');
return new Response('Hello, world');
});
});