9
votes

Comment maintenir différents fichiers journaux à des fins différentes dans Yii2

J'utilise Yii2 pour un projet. J'ai une classe pour consommer un service tiers. Cette classe a deux méthodes SendRequest et ProcessResponse. Je souhaite maintenir des journaux distincts pour la charge utile dans SendRequest avant de l'envoyer et un autre journal pour les données de réponse brutes reçues dans le processus de traitement avant de procéder à tout traitement. De plus, je voudrais la rotation du journal sur les deux journaux car les fichiers peuvent croître indéfiniment et que les deux fichiers soient distincts de l'application par défaut.Log. Est-ce possible? Comment puis-je mettre en œuvre cela en utilisant Yii2 API?


0 commentaires

4 Réponses :


1
votes

Puisque je n'étais pas tout à fait sûr comment configurer l'enregistreur Yii2 pour faire ce que je voulais, et que Googling Le sujet n'était pas beaucoup d'aide, j'ai décidé d'aller avec un enregistreur tiers. Celui que j'ai choisi était monologue. Cette fonctionnalité n'était nécessaire que dans une classe, donc je crée une méthode Static GetLogger qui a renvoyé une instance de Monolog \ Logger.

static::getLogger('pushNotifications')->info($notificationXml);


0 commentaires

41
votes

J'ai finalement retourné à l'aide de l'enregistreur Yii2 en ajoutant 2 cibles de fichier supplémentaires dans mon @ app / config / main.php. Les objectifs de fichiers avaient des catégories = ['commandes'] et ["pushnotifications '] respectivement de sorte que dans mon code j'utilise: xxx

ou xxx

Voici mon journal config: xxx


1 commentaires

J'ai publié un raffinement de cette technique ici dans le ZEN et l'art de CRAFT CMS Logement Lecture Article



0
votes

astérisque * code> peut également venir utile si nous devons collecter plus de sous-catégories dans un fichier cumulatif:

'log' => [
    'traceLevel' => YII_DEBUG ? 3 : 0,
    'flushInterval' => 100, // may prevent from memory exhaustion
    'targets' => [
        [
            'class' => 'yii\log\FileTarget',
            'categories' => ['eshop1*'],
            'logFile' => '@app/runtime/logs/eshop1.log',
            'logVars' => [], // don't log global vars
        ],
        [
            'class' => 'yii\log\FileTarget',
            'categories' => ['eshop2*'],
            'logFile' => '@app/runtime/logs/eshop2.log',
            'logVars' => ['GET', 'POST'], // log some globals
            'exportInterval' => 100, // may prevent from memory exhaust
        ],
    ],
],


0 commentaires

0
votes

Ce travail pour moi, pour dev connectez xxx

il est utilisé xxx


0 commentaires