Log e trace

Salve a tutti,

vorrei capire come vedere sia log che trace

ho messo


defined('YII_DEBUG') or define('YII_DEBUG',true);

ho inserito dentro main.php questo




'preload'=>array('log'),

.....

'log'=>array(

       'class'=>'CLogRouter',

       'routes'=>array(

       array(

            'class'=>'CFileLogRoute',

            'levels'=>'error',

        ),

         array(

            'class'=>'CFileLogRoute',

            'levels'=>'info, trace',

            'logFile'=>'infoMessages.log',

           ),

       		'class' => 'CWebLogRoute',

       		'levels' => 'info,trace',

       		'categories' => 'example',

       		'showInFireBug' => TRUE,

       ),

      ),



Ora leggendo che CWebLogRoute mi dovrebbe scrivere n fondo alla pagina Web e che dovrebbe anche farmi vedere qualcosa in Firebug, io scrivo nel mio controller ( per prova) questo:




		Yii::trace('example trace message', 'example');

		Yii::log("hello",'example');



e mi aspetto di vederlo nella mia pagina, ma invece non è così. Posso farmi stampare qualsiasi cosa da trac e e Log, oppure hanno delle parole "speciali" ?

Grazie

Nei tuoi log hai messo come livello ‘example’ mentre nel file di configurazione il livello da tracciare è ‘info’ e ‘trace’.

grazie per la risposta ho provato a correggere con:




 class' => 'CWebLogRoute',

     		'levels' => 'example',

       		'categories' => 'example',

       		'showInFireBug' => TRUE,



lasciando sempre:


		

        Yii::trace('example trace message', 'example');

        Yii::log("hello",'example');

ma non riesco a vedere ancora il log

grazie ancora

Prova ad aggiungere la categoria:


Yii::log($message, $level, $category);


Yii::log('example log message', 'example', 'example');

Il livello di default del log è info. quindi se tu scrivi nel log:




                'levels' => 'info',

                'categories' => 'info',

il tuo log può essere anche semplicemente


Yii::log($message);

Se non ometti il livello del log, quello presente nel file di configurazione deve essere lo stesso indicato nel codice. Nel file di configurazione hai example ma nel codice hai scritto questo:


Yii::log("hello",'example');

Avendo omesso la categoria è come se tu avessi scritto


                

        Yii::log('example trace message', 'example', 'info');

quindi scrivendo solo ‘class’ => ‘CWebLogRoute’,

nel controller Yii::log(‘example log message’);

dovrei vedere il messaggio a video? (perché non è così :( )

Guarda, in questo momento ho fatto una prova:

Ti faccio notare che ho SOLO decommentato la parte di CWebLogRoute.




        'log' => array(

            'class' => 'CLogRouter',

            'routes' => array(

                array(

                    'class' => 'CFileLogRoute',

                    'levels' => 'error, warning',

                ),

                array(

                    'class' => 'CWebLogRoute',

                    'levels' => 'info'

                ),

            ),

        ),



Non ci sono ne levels ne categorie. Dal momento che carico la pagina non vedo nulla. Ma se provo a scorrere verso il basso il documento, vedo tutti i log in fondo alla pagina. Prova.

ciao e grazie ancora per le risposte!

nel log è possibile far scrivere la query effettiva??

mi spiego meglio.

Se faccio una query tramite AR, posso nel log farmi scrivere per esteso Select * From niubbi Where user =‘blacksheep’ ?

Grazie ancora

Qui mi cogli impreparato. E’ una cosa che non uso mai =(. Non ho ancora studiato. Sorry.

Figurati!

vedi perché io avevo fatto una cosa del genere


	

$command2 = Yii::app() -> db -> createCommand() -> select('*') -> from('TbTest') -> $this -> render('leggiUtenti2', array('command' => $command, 'command2' => $command2, ));

dove poi in leggiutenti2 faccio un semplice echo di $command2 e mi restituisce quanto ti dicevo.

solamente che con le AR e con i trac e non ho capito come si fa :(