豁然高

导航

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保存的路径之下

 

posted on 2019-08-28 11:26  豁然高  阅读(383)  评论(0编辑  收藏  举报