/ / Journal (5.1.6) journal quotidien - laravel, laravel-5, lumen

Journal quotidien (5.1.6) - laravel, laravel-5, lumen

Documentantion dit:

Par défaut, Lumen est configuré pour créer des fichiers journaux quotidiens pour votre application, qui sont stockés dans le répertoire storage / logs.

Mais mon application génère toujours un lumen.log sans journal quotidien.

Ma version: Version Laren Framework Lumen (5.1.6) (Composants Laravel 5.1. *) Je viens de l'installation 5.1.

Comment générer des journaux avec des fichiers quotidiens?

Réponses:

10 pour la réponse № 1

Depuis ce commit Il existe une méthode configureMonologUsing. Vous devez appeler cette méthode dans votre fichier bootstrap / app.php.

use MonologFormatterLineFormatter;
use MonologHandlerRotatingFileHandler;

$app->configureMonologUsing(function ($monolog) {
$maxFiles = 7;

$rotatingLogHandler = (new RotatingFileHandler(storage_path("logs/lumen.log"), $maxFiles))
->setFormatter(new LineFormatter(null, null, true, true));

$monolog->setHandlers([$rotatingLogHandler]);

return $monolog;
});

Vous pouvez créer un fournisseur de services qui crée un nouveau gestionnaire de journaux rotatif, puis remplace les gestionnaires Monolog.

<?php

namespace AppProviders;

use IlluminateSupportServiceProvider;
use MonologFormatterLineFormatter;
use MonologHandlerRotatingFileHandler;

class LogServiceProvider extends ServiceProvider
{
public function boot()
{
app("PsrLogLoggerInterface")->setHandlers([$this->getRotatingLogHandler()]);
}

public function getRotatingLogHandler($maxFiles = 7)
{
return (new RotatingFileHandler(storage_path("logs/lumen.log"), $maxFiles))
->setFormatter(new LineFormatter(null, null, true, true));
}

public function register()
{
}
}

Vous pouvez également étendre l'application et remplacer le getMonologHandler ou registerLogBindings méthodes. Vous trouverez ci-dessous un exemple remplaçant l'ancien.

Remplacer dans bootstrap / start.php

// This
$app = new LaravelLumenApplication(
realpath(__DIR__."/../")
);

// With this
$app = new AppApplication(
realpath(__DIR__."/../")
);

Et créez AppApplication.php

<?php

namespace App;

use MonologFormatterLineFormatter;
use MonologHandlerRotatingFileHandler;
use LaravelLumenApplication as LumenApplication;

class Application extends LumenApplication
{
/**
* {@inheritdoc}
*/
protected function getMonologHandler()
{
$maxRotatedFiles = 3

return (new RotatingFileHandler(storage_path("logs/lumen.log"), $maxRotatedFiles))
->setFormatter(new LineFormatter(null, null, true, true));
}
}