php - 如何将 PSR 日志文件更改为每天仅一个
问题描述
我使用 PSR 记录器来获取日志。但它只会为所有日期创建一个文件。我需要为每个日期获取单独的日志文件。怎么做?
require_once '../../logger/vendor/autoload.php';
require_once '../../logger/Psr/Log/Logger.php';
use Katzgrau\KLogger\Logger;
use Psr\Log\LogLevel;
$logPath = '/var/www/html/logs';
$logger = new Logger($logPath, LogLevel::DEBUG, array ( 'filename' => 'driver_api' , 'extension' => 'log' ));
$logger->log( $level, $message , $context);
`
解决方案
使用对数旋转器
protected function log_rotate($logpath, $filename, $extention){
$logfilename = $logpath.'/'.$filename.'.'.$extention; //not needed when included
$logfilestokeep = 15;
$fileDate = '';
if (file_exists($logfilename)) {
if (date("Y-m-d", filemtime($logfilename)) !== date('Y-m-d')) {
$fileDate = date("Y-m-d", filemtime($logfilename));
$newName = $logpath .'/'.$filename. "_" . $fileDate.'.'.$extention;
if (file_exists($logfilename)) {
rename($logfilename, $newName);
}
}
}
}
推荐阅读
- reactjs - React Big Calendar 只显示特定的时间范围
- mongodb - 仅调用 Typegoose 进行保存操作时,钩子在 updateOne 上不起作用
- bots - 我应该在什么环境下为电报机器人编写代码,以便即使在控制台未运行时它也能正常工作?
- javascript - 如何使用 const 变量来迭代“for in”循环?
- javascript - bootstrap 中的 toasts 动画
- javascript - 选择特定日期时显示错误(日期输入)
- python - 不同长度的二维绘图 xy 列表
- inheritance - 如何让一个小部件从另一个小部件继承?- 颤振
- scala - 如何从 spark scala 中的两个表中获取列的数据
- python - 如何停止从 python gui 启动的进程?