fuelphp 日志文件保存路径以及日志文件名变更中遇到的问题总结
在不修改配置文件,也就是默认的情况下,fuelphp的日志文件是按照如下路径保存的
/fuel/app/logs文件夹是固定不变的,YYYY/MM/DD.php是根据日志的生成时间自动生成的。
即在默认情况下,文件夹YYYY和MM如果不存在就会自动生成
/fuel/app/logs/YYYY/MM/DD.php
如果想更改日志文件的保存位置,即不想保存在/fuel/app/logs 文件夹中,而要保存在其他地方,那么只要在fuel/app/config/config.php中修改log_path即可
//'log_path' => APPPATH.'logs/', 'log_path' => APPPATH.'logs/batch', //① // 'log_path' => APPPATH.'logs/'.date('Y/m').DS, // ②
注意:如果要修改log_path,一定要保证指定的路径要存在,否则会报错
我所犯的错误如②,指定的路径是随着时间的变化而变化的,一旦年份或者月份变更,指定的路径就不存在了,就会报错
如果想修改文件名或者扩展名,那就要修改log_file。
'log_file' => date('d').'.log', // "DD.php" という形式
注意:在不修改log_file的情况下,也就是默认情况下,fuelphp会在log_path指定的路径下自动生成YYYY文件夹和MM文件夹以及DD.php日志文件
但是一旦修改了log_file,那么就不会再自动生成YYYY文件夹和MM文件夹,而是按照指定的方式生成相应的文件和文件夹
'log_file' => date('d').'.log', // 这种情况下,只会生成DD.log形式的日志文件,而不会生成文件夹,如果既想改文件名,也想和默认情况下生成YYYY和MM文件夹,可按如下方式设置
'log_file' => date('Y/m').DS.date('d').'.log', //这种情况下会按照指定的路径生成相应的文件夹
我的需求是只想改变日志文件的扩展名,即DD.php改为DD.log
初期修改如下
'log_file' => date('d').'.log', // "DD.php" という形式 'log_path' => APPPATH.'logs/'.date('Y/m').DS, // APPPATH/YYYY/MM/
结果刚改完后没什么错误,结果月份一变就报错了,原因如前面所述,月份变了后,log_path指定的路径不存在了。
正确的修改方式如下,其实只需修改log_file即可,只是要在文件名前加上变化的路径名
'log_file' => date('Y/m').DS.date('d').'.log', // "DD.php" という形式 // 'log_path' => APPPATH.'logs'.DS, // APPPATH/YYYY/MM/
总结:固定不变的路径部分设置log_path,变化的部分设置log_file。log_file不但可以设置文件名,也可以设置文件的后半部分的保存路径
log_path指定的路径要求必须存在,不会自动生成,不存在就会报错
log_file指定的路径不要求必须存在,若不存在就会自动生成,只是log_file指定的路径会保存在log_path保存的路径之下