Yii文件日志配置小结

    一直对Yii文件日志的配置没有关注,基本上都是默认配置,最近发现所有日志都写在一个文件里,并且日志文件都保存在Yii项目的runtime目录下,查看非常不方便,于是想将不同类型的日志进行拆分,并且单独放入空间较大的数据盘,稍微看了一下Yii的文件日志类,测试了一下相关配置,觉得配置还挺方便的,记录下来:

在main.php文件中,配置日志的地方

 

 

配置:
'log'=>array(
	'class'=>'CLogRouter',
	'routes'=>array(
		array(
			'class'=>'CFileLogRoute',
			'levels'=>'error, warning, info',
			'categories'=> 'application.*',//日志文件分类,只有调用时使用了appplication都会默认写入默认文件application.log
                         'logPath'=>'/mnt/php/logs', //日志文件路径
			'maxFileSize'=>5120,//日志大小
			'maxLogFiles'=>20,//保存最大个数,Yii会按时间保留最近20个文件
		),
		array(
			'class' => 'CFileLogRoute',
			'levels' => 'error, warning,info',
			'categories'=> 'db.*',//日志文件分类,db相关
			'logFile'=> 'db.log',//保存数据库操作相关日志
                        'logPath'=>'/mnt/php/logs', //日志文件路径
			'maxFileSize'=>5120,//日志大小5M,以kb为单位的
			'maxLogFiles'=>20,
		),
		array(
			'class' => 'CFileLogRoute',
			'levels' => 'trace',
			'categories'=> 'debug.*',
			'logFile'=> 'debug.log',//保存debug日志
			'logPath'=>'/mnt/php/logs',
			'maxFileSize'=>5120,
			'maxLogFiles'=>20,
		),
	)
),

调用:
//默认写入application.log
Yii::log($content,CLogger::LEVEL_INFO); 
//将$content写入/mnt/php/logs/debug.log,级别为trace
Yii::log($content,CLogger::LEVEL_TRACE,'debug'); 
//以下三种写法都会将$content写入/mnt/php/logs/db.log,并且在每行日志前面会使用db.model1,
//db.model2,db.model3区分,级别均为error
Yii::log($content,CLogger::LEVEL_ERROR,'db.model1');
Yii::log($content,CLogger::LEVEL_ERROR,'db.model2');
Yii::log($content,CLogger::LEVEL_ERROR,'db.model3');


源码:framework/logging/CFileLogRoute.php
/**
	 * @var integer maximum log file size
	 */
	private $_maxFileSize=1024; // in KB
	/**
	 * @var integer number of log files used for rotation
	 */
	private $_maxLogFiles=5;
	/**
	 * @var string directory storing log files
	 */
	private $_logPath;
	/**
	 * @var string log file name
	 */
	private $_logFile='application.log';

这几个参数都提供了get和set方法,所以可以在配置里面配置即可

另外一些参数可以参考父类:framework/logging/CLogRoute.php
/**
	 * @var string list of levels separated by comma or space. Defaults to empty, meaning all levels.
	 */
	public $levels='';
	/**
	 * @var mixed array of categories, or string list separated by comma or space. 
	 * Defaults to empty array, meaning all categories.
	 */
	public $categories=array();

应该还有一些可以配置,暂时无用到,没做深入研究了

   日志输出结果:

    
    输出包含几个属性:时间 [日志级别] [日志的分类] 日志内容

    日志分类如果按照上述数据库日志的配置的话,会产生[db.model1]、[db.model2]、[db.model3]之类

 

   好了,这下查起日志来方便多了,并且debug在开发和发布之间随时开和关,不影响其他日志的读写

   来源:http://it.5yun.com.cn/html/y2015/m01/24.html
 
   
 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值