fuelphp 日志文件保存路径以及日志文件名变更中遇到的问题总结
在不修改配置文件,也就是默认的情况下,fuelphp的日志文件是按照如下路径保存的
/fuel/app/logs文件夹是固定不变的,YYYY/MM/DD.php是根据日志的生成时间自动生成的。
即在默认情况下,文件夹YYYY和MM如果不存在就会自动生成
1 | /fuel/app/logs/YYYY/MM/DD.php |
如果想更改日志文件的保存位置,即不想保存在/fuel/app/logs 文件夹中,而要保存在其他地方,那么只要在fuel/app/config/config.php中修改log_path即可
1 2 3 | //'log_path' => APPPATH.'logs/', 'log_path' => APPPATH. 'logs/batch' , //① // 'log_path' => APPPATH.'logs/'.date('Y/m').DS, // ② |
注意:如果要修改log_path,一定要保证指定的路径要存在,否则会报错
我所犯的错误如②,指定的路径是随着时间的变化而变化的,一旦年份或者月份变更,指定的路径就不存在了,就会报错
如果想修改文件名或者扩展名,那就要修改log_file。
1 | 'log_file' => date( 'd' ). '.log' , // "DD.php" という形式 |
注意:在不修改log_file的情况下,也就是默认情况下,fuelphp会在log_path指定的路径下自动生成YYYY文件夹和MM文件夹以及DD.php日志文件
但是一旦修改了log_file,那么就不会再自动生成YYYY文件夹和MM文件夹,而是按照指定的方式生成相应的文件和文件夹
1 | 'log_file' => date( 'd' ). '.log' , // 这种情况下,只会生成DD.log形式的日志文件,而不会生成文件夹,如果既想改文件名,也想和默认情况下生成YYYY和MM文件夹,可按如下方式设置<br>'log_file' => date('Y/m').DS.date('d').'.log', //这种情况下会按照指定的路径生成相应的文件夹 |
我的需求是只想改变日志文件的扩展名,即DD.php改为DD.log
初期修改如下
1 2 | 'log_file' => date( 'd' ). '.log' , // "DD.php" という形式 'log_path' => APPPATH. 'logs/' .date( 'Y/m' ).DS, // APPPATH/YYYY/MM/ |
结果刚改完后没什么错误,结果月份一变就报错了,原因如前面所述,月份变了后,log_path指定的路径不存在了。
正确的修改方式如下,其实只需修改log_file即可,只是要在文件名前加上变化的路径名
1 2 | '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保存的路径之下
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)