CDbLogRoute extend

Hi all, how can extend CDbLogRoute class for add custom string in log events ? Actually I split a single string (message param)separated by comma :(

thanks

the fundamental problem in my case is that there is no property Autodump and autoflush in clogroute, only in Clogger

this is only an example:





class ELog extends CDbLogRoute {

	


protected function createLogTable($db,$tableName) {


		parent::createLogTable($db,$tableName);

		

		$sql="

ALTER TABLE $tableName

ADD datetime timestamp default CURRENT_TIMESTAMP,

ADD text TEXT default NULL,

ADD type VARCHAR(10) default NULL,

ADD value VARCHAR(50) default NULL,

ADD id_user int(11) default NULL,

ADD ip VARCHAR(13) default NULL,

ADD lang VARCHAR(5) default NULL,

ADD httpinfo VARCHAR(255),

ADD ishtml tinyint(1) unsigned default '0'

";

		$db->createCommand($sql)->execute();

	}


	

	

	protected function processLogs($logs)

	{	

		$sql="

INSERT INTO {$this->logTableName}

(level, category, logtime, message, ip, httpinfo, type, text, id_user, value) VALUES

(:level, :category, :logtime, :message, :ip, :httpinfo, :type, :text, :id_user, :value)

";

		

		$command=$this->getDbConnection()->createCommand($sql);

		foreach($logs as $log)

		{

			$command->bindValue(':level',$log[1]);

			$command->bindValue(':category',$log[2]);

			$command->bindValue(':logtime',(int)$log[3]);

			$command->bindValue(':message',$log[0]);

			

			//personalized fields

			$command->bindValue(':ip', 		$this->getrealip());

			$command->bindValue(':httpinfo',	$this->gethttpinfo());

			$command->bindValue(':id_user',		Yii::app()->user->getId());

			

			$elog=CJSON::decode($log[0]);

			$command->bindValue(':type',	(!isset($elog['type'])?null:$elog['type']));

			$command->bindValue(':text',	(!isset($elog['text'])?null:$elog['text']));

			$command->bindValue(':value',	(!isset($elog['value'])?null:$elog['value']));

			$command->execute();

		}

	}

	



in config/main.php




'log'=>array(

			'class'=>'CLogRouter',

			'routes'=>array(

				array(

					'class'=>'application.components.ELog',

					'levels'=>'elog',				

					'connectionID'=>'db',

					'logTableName'=>'yii_logs',

					'autoCreateLogTable'=>true,

				),

									

			),

		),



in your code:


Yii::log('this is a test', 'elog');


Yii::log(CJSON::encode(array('type'=>'neworder', 'text'=>'order nºxxxx succesfully saved', 'value'=>'xxxx')), 'elog');

For more detail visit

Error logs save in Db in Yii