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? P>
4 Réponses :
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);
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: ou p> Voici mon journal config: p>
J'ai publié un raffinement de cette technique ici dans le ZEN et l'art de CRAFT CMS Logement Lecture Article
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
],
],
],
Ce travail pour moi, pour dev connectez il est utilisé p>