Caution: The documentation you are viewing is
for an older version of Zend Framework.
You can find the documentation of the current version at:
https://docs.zendframework.com/
Utiliser la fabrique pour créer des logs - Zend_Log
En plus de pouvoir instancier les objets directement, il est possible d'utiliser une fabrique, la méthode factory() d'une instance Log, et il est possible de configurer les objets d'écriture (writers) et leurs filtres. En utilisant la fabrique, vous pouvez attacher plusieurs objets d'écriture dont la configuration peut être passée sous forme de tableau ou d'objet Zend_Config.
Un exemple:
Le code ci-dessus instancie un objet journal et 2 objets d'écriture dont un vers un fichier local, puis un vers Firebug. Chacun possède un filtre sur la priorité avec un niveau maximum différent.
Les évènements sont journalisés avec le format de date ISO 8601 par défaut. Vous pouvez choisir votre propre format avec l'option timestampFormat.
Chaque objet d'écriture support les options suivantes:
Le nom "court" de l'objet d'écriture; le nom sans le préfixe. Voyez "writerNamespace" pour plus de détails, des exemples sont : "Mock", "Stream", "Firebug".
Tableau associatif de paramètre à utiliser à l'instanciation de l'objet d'écriture. Chaque méthode factory() fera suivre ces paramètres.
Le préfixe de classe ou espace de nom(namespace) à utiliser pour créer le nom de classe complet de l'objet d'écriture. Par défault : "Zend_Log_Writer".
Le nom "court" d'un formateur à utiliser sur l'objet d'écriture. Voyez "formatterNamespace" pour plus de détails. Exemples: "Simple", "Xml".
Tableau associatif de paramètre à utiliser à l'instanciation de l'objet formateur. Chaque méthode factory() fera suivre ces paramètres.
Le préfixe de classe ou espace de nom(namespace) à utiliser pour créer le nom de classe complet de l'objet formateur. Par défault : "Zend_Log_Formatter".
Le nom "court" d'un filtre à utiliser sur l'objet d'écriture. Voyez "filterNamespace" pour plus de détails. Exemples: "Message", "Priority".
Tableau associatif de paramètre à utiliser à l'instanciation de l'objet filtre. Chaque méthode factory() fera suivre ces paramètres.
Le préfixe de classe ou espace de nom(namespace) à utiliser pour créer le nom de classe complet de l'objet filtre. Par défault : "Zend_Log_Filter".
Chaque objet d'écriture et chaque filtre possède des options.
Une instance de Zend_Db_Adapter
Nom de la table à utiliser.
Tableau associatif de correspondance entre les noms des colonnes de la table et les champs des évènements du journal.
Aucune option n'est acceptée par cet objet d'écriture.
Option | Type de données | Valeur par défaut | Description |
---|---|---|---|
String | Zend_Mail | Une instance de Zend_Mail | |
charset | String | iso-8859-1 | L'encodage pour le courriel |
from | String or Array | NULL |
Expéditeur du courriel.
Les paramètres pour un type Array sont :
|
to | String or Array | NULL | Destinataire(s) du courriel |
cc | String or Array | NULL | Destinataire(s) en copie(s) du courriel |
bcc | String or Array | NULL | Destinataire(s) en copie(s) cachée(s) du courriel |
subject | String | NULL | Sujet du courriel |
subjectPrependText | String | NULL | Un résumé du nombre de chaque niveau d'erreurs sera ajouté à la suite du sujet du courriel |
layout | String | NULL | Une instance de Zend_Layout |
layoutOptions | Array | NULL | Voir la section Zend_Layout options de configuration |
layoutFormatter | String | NULL | Une instance de Zend_Log_Formatter_Interface |
Aucune option n'est acceptée par cet objet d'écriture.
Aucune option n'est acceptée par cet objet d'écriture.
Un identifiant de flux PHP valide vers lequel journaliser.
Le mode I/O (Lecture/Ecriture) à utiliser; défaut : "a" pour "append".
Nom de l'application utilisé par le journaliseur syslog.
Facility utilisée par le journal syslog.
Aucune option n'est acceptée par cet objet d'écriture.
Expression régulière à faire correspondre par rapport au message du journal.
La priorité maximale à journaliser.
L'opérateur de comparaison (supérieur ou inférieur) à utiliser pour la comparaison, "<=" est utilisé par défaut.
Aucune option n'est acceptée par cet objet d'écriture.
SI vous souhaitez créer vos propres objets d'écriture du journal, ou vos propres filtres, il est possible de les rendre compatibles avec Zend_Log::factory() facilement.
Vous devez au minimum implémenter Zend_Log_FactoryInterface, qui attend une méthode statique factory() accéptant un seul argument, $config, de types tableau ou instance de Zend_Config. Si vos objets étendent Zend_Log_Writer_Abstract, ou vos filtres étendent Zend_Log_Filter_Abstract, alors ce sera tout.
Après, définissez la correspondance entre les options de configuration et les arguments du constructeur. Par exemple :
Aussi, il est possible d'appeler les setters après l'instanciation, mais avant de retourner l'instance: