0
votes

LOG :: Info - Logement de l'utilisateur de l'enregistrement à Laravel.log

Je veux ajouter toutes les activités à l'intérieur de mon application dans le fichier Larave.log. J'ai pu ajouter de la connexion à l'utilisateur à l'intérieur, mais pas la déconnexion.

Je fais cela à l'aide de Laravel 5.8 avec une base de données MySQL 5.

Ceci est Code Inside HomeController pour l'enregistrement de l'utilisateur de connexion à la maison. < / p> xxx

Le code ci-dessous est à l'intérieur de Laravel Logincontroller par défaut xxx

avec déconnexion Je m'attends à voir le message sur la déconnexion de l'utilisateur comme dans Connectez-vous mais je ne le vois pas. Quelqu'un peut me donner une explication? Merci!


4 commentaires

Êtes-vous sûr que le code est en cours d'exécution? Essayez d'ajouter un dd ("message") avant le retour et vérifiez si vous obtenez "message"


Essayé mais rien. Je n'ai que vous déconnecter sans imprimer dans le fichier de journalisation. Ce code n'a pas exécuté.


Ensuite, vous devez ajouter le journal sur la fonction de déconnexion appropriée, vérifier la réponse de Florian.


Votre logique semble être éteinte, car le message de journal de connexion sera créé chaque fois que l'utilisateur visite son chemin d'accueil à HomeController @ index .


3 Réponses :


3
votes

Vous devez remplacer la méthode correcte. Je pense que UserLogout n'est jamais appelé à partir du cadre.

/**
 * Log the user out of the application.
 *
 * @param  \Illuminate\Http\Request  $request
 * @return \Illuminate\Http\Response
 */
public function logout(Request $request)
{
    Log::info('User '.Auth::user()->email.' has logged out');
    Auth::guard('web')->logout();

    return redirect()->route('login');
}


1 commentaires

Alternativement, la voie de déconnexion peut être modifiée. Mais je préférerais ta solution.



5
votes

Vous pouvez écouter les login et Déconnexion pour enregistrer les actions. Pour ce faire, ajoutez ce qui suit à la méthode boot () de votre eSefreserviceProvider : xxx

Utilisation de cette méthode, vous ne le faites pas doivent remplacer les actions de contrôleur existantes et fournies par le cadre.


5 commentaires

C'est la meilleure réponse jusqu'à présent. Pour compléter cette réponse, voici le lien vers la liste des événements automatiquement soulevés par la Framework Laravel lors du processus d'authentification: laravel.com/docs/master/authentication#events


Merci, ce code a résolu mon problème. De toute évidence, je dois améliorer mes connaissances sur EventserviceProvider classe. Maintenant, le problème concerne la dateTime parce que l'enregistreur enregistre les événements 2 heures de moins (c'est-à-dire de 27 dernières années, mais mon enregistreur enregistre l'événement de connexion à 27 dernières années) Quelle classe Modifier Heure et minutes (DateTime) de mon enregistreur?


Normalement, l'enregistreur enregistre l'heure à l'aide du fuseau horaire défini dans config / app.php (ou dans le fichier .env avec la touche App_timezone ). La valeur par défaut est utc. / code> pendant que vous semblez avoir besoin Europe / Berlin par exemple.


Ok, j'ai résolu aussi ce problème. J'ai modifié "Timezone" dans "Config.app" de "UTC" à "Europe / Berlin", comme indiqué dans PHP 5 Timezones et, maintenant, l'enregistreur rapporte le bon fuseau horaire. Merci les gars!


Génial! Veuillez accepter l'une des réponses si votre problème est résolu. :)



0
votes

Vous devez définir une méthode de déconnexion dans l'application / http / contrôleurs / auth / logiffontroller.php xxx

Cette méthode appellera la déconnexion si vous avez défini les itinéraires d'authentification par défaut et le log être ajouté sur déconnexion dans un fichier laravel.log.


0 commentaires