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 № 1Depuis 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));
}
}