Dans le processus de développement d'applications, le débogage est également une étape très importante en plus du débogage en temps réel pris en charge par l'IDE (comme VS.PHP ou la fonction de débogage prise en charge par l'IDE), en ajoutant des informations de débogage appropriées au Web. applications est également très utile, toute personne ayant développé des applications Java ou .Net est familiarisée avec log4XX. Yii Framework fournit également une fonction de journal similaire, Yii::log, qui apparaît comme un composant intégré de CWebApplication. Il peut être configuré via un fichier de configuration (la configuration dans Yii est généralement protected/config/main.php).
L'article précédent Tutoriel concis de développement du framework Yii (2) Bases de l'application Web Yii décrit brièvement les composants de l'application.
En plus du composant Log, Yii prédéfinit une série de composants d'application de base pour fournir des fonctions utilisées dans les applications Web courantes. Par exemple, le composant de requête est utilisé pour analyser les demandes des utilisateurs et fournir des informations telles que l'URL, les cookies, etc. En configurant les propriétés de ces composants principaux, nous pouvons modifier le comportement par défaut de Yii dans presque tous les aspects.
Ci-dessous, nous répertorions les composants de base prédéfinis par CWebApplication.
assetManager : CAssetManager - gère la publication des fichiers d'actifs privés.
authManager : CAuthManager - Gère le contrôle d'accès basé sur les rôles (RBAC).
cache : CCache - Fournit une fonction de mise en cache des données. Notez que vous devez spécifier la classe réelle (par exemple CMemCache, CDbCache). Sinon, NULL sera renvoyé lorsque vous accéderez à ce composant.
clientScript : CClientScript - gère les scripts clients (javascripts et CSS).
coreMessages : CPhpMessageSource - fournit la traduction des messages principaux utilisés par le framework Yii.
db : CDbConnection - Fournit une connexion à la base de données. Notez que pour utiliser ce composant, vous devez configurer sa propriété connectionString.
errorHandler : CErrorHandler - Gère les erreurs et exceptions PHP non détectées.
format : CFormatter - affichage numérique formaté. Cette fonctionnalité est disponible à partir de la version 1.1.0.
messages : CPhpMessageSource - Fournit des traductions de messages utilisées dans les applications Yii.
requête : CHttpRequest - Fournit des informations sur la demande de l'utilisateur.
securityManager : CSecurityManager - Fournit des services liés à la sécurité tels que le hachage et le cryptage.
session : CHttpSession - Fournit des fonctions liées à la session.
statePersister : CStatePersister - Fournit des méthodes de persistance d'état globales.
urlManager : CUrlManager - Fournit des fonctions liées à l'analyse et à la création d'URL.
user : CWebUser - Fournit des informations d'identification de l'utilisateur actuel.
themeManager : CThemeManager - gère les thèmes. Ces composants seront introduits étape par étape dans les didacticiels suivants. La méthode de base d'utilisation de la fonction Log est donnée ci-dessous : Ici, nous modifions le didacticiel concis de développement du framework Yii (1) La première application est Hello World. Ajoutez-y un journal. 1. Créez le fichier de configuration protected/config/main.php Si vous souhaitez écrire le journal dans un fichier, vous pouvez utiliser la configuration suivante :
// This is the main Web application configuration. Any writable// CWebApplication properties can be configured here.return array( // preloading 'log' component'preload'=>array('log'), // application components'components'=>array( 'log'=>array('class'=>'CLogRouter','routes'=>array(array('class'=>'CFileLogRoute','levels'=>'info,error, warning',), ),),), );
Le routage des informations CLogRouter est enregistré via Yii : log ou Yii::trace Les informations sont conservées en mémoire. Nous devons généralement les afficher dans une fenêtre de navigateur ou les enregistrer dans un stockage persistant tel que des fichiers ou des e-mails. C'est ce qu'on appelle le routage de l'information.
Généralement, lorsque vous utilisez la fonction Log, vous devez précharger le composant Log, qui est configuré via le préchargement et permet à l'application de charger certains modules à l'avance. Astuce : par défaut, les composants de l'application sont créés selon les besoins. Cela signifie qu'un composant ne sera créé que s'il est accédé. Par conséquent, les performances globales du système ne seront pas dégradées en raison de la configuration de nombreux composants. Certains composants applicatifs (tels que CLogRouter) sont créés qu'ils soient utilisés ou non. Dans ce cas, nous listons les ID de ces composants dans le fichier de configuration de l'application : preload.
2. Modifiez le script d'entrée index.php et configurez l'instance d'application principale pour utiliser le fichier de configuration nouvellement créé.
$yii='C:/yiiframework/yii.php'; // remove the following line when in production mode defined('YII_DEBUG') or define('YII_DEBUG',true); $config=dirname(__FILE__).'/protected/config/main.php'; require_once($yii); Yii::createWebApplication($config)->run();3. 创建protected/runtime
Étant donné que le répertoire par défaut dans lequel les fichiers journaux sont écrits est protégé/runtime, le répertoire d'exécution doit être créé à l'avance, sinon Yii affichera le journal directement sur la page Web.
4. De cette façon, vous pouvez utiliser Yii::log ou Yii::trace pour ajouter des journaux à l'application.
La différence est que cette dernière n'enregistre les informations que lorsque l'application s'exécute en mode débogage.
Yii::log($message, $level, $category); Yii::trace($message, $category);
Lors de l'enregistrement des informations, nous devons spécifier sa catégorie et son niveau. La catégorie est une chaîne avec un format similaire à un alias de chemin. Par exemple, si un message est enregistré dans CController, nous pouvons utiliser system.web.CController comme classification. Le niveau d'information doit être l'une des valeurs suivantes :
trace : Il s'agit du niveau utilisé dans Yii::trace. Il est utilisé pour suivre le flux d’exécution d’un programme pendant le développement.
info : Ceci est utilisé pour enregistrer des informations communes.
profil : Ceci est un aperçu des performances (profil). Des instructions plus détaillées suivront sous peu.
avertissement : ceci est utilisé pour les informations d'avertissement.
erreur : ceci est utilisé pour les messages d'erreur fatales.
Les journaux de Yii sont classés et filtrés par niveau et catégorie Comme nous l'avons mentionné, plusieurs niveaux ou catégories doivent être connectés à l'aide de virgules.
由于 信息分类是类似 xxx.yyy.zzz 格式的,我们可以将其视为一个分类层级。 具体地,我们说 xxx 是 xxx.yyy 的父级,而 xxx.yyy 又是 xxx.yyy.zzz 的父级。 这样我们就可以使用 xxx.* 表示分类 xxx 及其所有的子级和孙级分类。
有了以 上知识,我们修改SiteController的actionIndex,添加一行日志。
public function actionIndex() { Yii::log("action","info","site.action"); $this->render("index"); }
5. 运行应用,可以看到Yii在protected/runtime 创建了一个application.log
其内容如下:
2012/12/11 21:23:38 [info] [site.action] action
注: 日志存放的位置和文件名都可以通过配置来修改,一般情 况使用缺省值就可以了,和log4X 类似,应用的日志可以通过路由同时写到多个目的地(文件,Email等)这些多可以通过配置 来实现,具体可以参见日志记录。
以上就是PHP开发框架Yii Framework教程(3) 为应用添加日志的内容,更多相关内容请关注PHP中文网(www.php.cn)!