web-dev-qa-db-fra.com

Laravel 5.6 La mise à niveau a provoqué la rupture de la journalisation

Heey!

J'ai donc récemment eu la tâche de prendre un Laravel 5.2 à 5.6. Cela semblait bien ... jusqu'à ce que j'essaie de faire une \Log::info(). Chaque chaque fois que je lance ça, j'obtiens une grosse erreur, mais à la fin, il s'imprime toujours dans le journal. J'ai vu la documentation 5.6 sur la création du config/logger.php. J'en ai pris une nouvelle copie sur github. La seule chose que j'ai faite après cela a été de définir une variable env pour le LOG_CHANNEL être célibataire. Voici l'erreur que j'obtiens:

[2018-03-02 08:28:59] laravel.EMERGENCY: Impossible de créer un enregistreur configuré. Utilisation d'un enregistreur d'urgence. {"exception": "[objet] (InvalidArgumentException (code: 0): le journal [] n'est pas défini. dans I:\xampp\htdocs\mtm\vendor\laravel\framework\src\Illuminate\Log\LogManager.php: 181) [....

J'ai fait une comparaison de fichiers entre Laravel 5.2 et 5.6. Je ne vois rien qui saute qui briserait la fonctionnalité de journalisation.

Quelqu'un at-il rencontré cela avec une mise à niveau Laravel?

19
cbloss793

Ajoutez ce fichier à votre dossier de configuration https://github.com/laravel/laravel/blob/develop/config/logging.php

et ajoutez-le à votre fichier .env LOG_CHANNEL=stack

22
MohamedBenhida

J'ai récemment eu la même erreur dans ma machine de développement (et pas dans celle de production, bizarrement). Dans ma machine de développement, j'ai installé php 7.1 Et php 7.2. En vérifiant avec phpinfo(), j'ai découvert que 7.1 était la version par défaut, j'ai donc décidé de passer à 7.2.

Sudo a2dismod php7.1
Sudo a2enmod php7.2
Sudo systemctl restart Apache2

Cela n'a pas résolu le problème (mais en faisait peut-être partie).

Après plusieurs heures passées à essayer tout ce qui est suggéré sur le web, j'ai trouvé ma solution en:

  1. Vérification de toutes les autorisations dans le dossier de stockage.
  2. Dans mon dossier de projet, effacer tous les cache (s) et config.
  3. Vidage de tous les fichiers composer chargement automatique.

En détail:

cd your_project_full_path
Sudo chmod -R 0775 storage
Sudo chown -R www-data:www-data storage
php artisan config:clear
php artisan view:clear
php artisan route:clear
composer dump-autoload

Après cela, je n'ai plus eu de problème. Essayez peut-être 0755 comme autorisation pour le dossier de stockage. J'espère que cela t'aides!

6
Marco Cazzaro

J'ai eu le même problème et j'ai essayé de tout faire comme vous mais sans travailler.

Enfin, j'ai trouvé que c'était à cause de la configuration en cache, effacez-la et tout ira bien:

php artisan config:clear
5
Son Nguyen

J'étais confronté au même problème en raison de la mise à niveau de ma version laravel de 5.3 à 5.7. Mais après avoir cherché quelques menthes, j'ai trouvé la solution. Il vous suffit de suivre les étapes suivantes.

  1. créez le fichier logging.php dans le dossier config .
  2. Copiez le code de ce Lien officiel de Laravel.
  3. Collez ce code dans votre fichier logging.php.
  4. exécutez cette commande - php artisan config: clear

Terminé. Happy Coding :)

4
LibraRamis

utilisez guide de mise à nivea , et ajoutez logging.php à vos fichiers de configuration.

3
parisssss

Après deux jours de recherches, j'ai trouvé une solution sur Github.

Si vous utilisez Laravel 5.5.4 à Laravel 5.6. *), Vous pouvez simplement installer et configurer le package d'exceptions de Graham Campbell.

Lien: https://github.com/GrahamCampbell/Laravel-Exceptions

Cela a parfaitement fonctionné pour moi sur Mac OSX (PHP 7.1.7), Laravel 5.6.22

Mon erreur initiale:

2018-05-25 14:35:07] laravel.EMERGENCY: Unable to create configured logger. 

Using emergency logger. {"exception":"[object] (InvalidArgumentException(code: 0): Log [] is not defined. at /Users/pro/Sites/metiwave/vendor/laravel/framework/src/Illuminate/Log/LogManager.php:181)

2
nensamuel