系统的日志功能可以满足我们日常需求。但是当我们有时候需要自定义日志或者方便系统调试更新的时候我们就需要自定义日志功能:
下面开始贴码:
在thinkphp\library\think 目录下找到Log.php
增加一个方法
/**
* [myselfLog 自定义日功能]
* @param [type] $title [备注]
* @param [type] $log_content [内容]
* @param string $logname [保存文件名称]
* @return [type] [description]
*/
public static function mylog($title, $log_content, string $logname = "") {
$max_size = 300000;//字节
if ($logname == "") {
$log_filename = RUNTIME_PATH . '/tlogs/' . date('Ym-d') . ".log";
} else {
$log_filename = RUNTIME_PATH . '/tlogs/' . $logname . ".log";
}
if (file_exists($log_filename) && (abs(filesize($log_filename)) > $max_size)) {
rename($log_filename, dirname($log_filename) . DS . date('Ym-d-His') . $logname . ".log");
}
$t = microtime(true);
$micro = sprintf("%06d", ($t - floor($t)) * 1000000);
$d = new \DateTime (date('Y-m-d H:i:s.' . $micro, $t));
if(is_array($log_content)){
$log_content = JSONReturn($log_content);
}
file_put_contents($log_filename, ' ' . $d->format('Y-m-d H:i:s u') . " title:" . $title . "\r\n" . $log_content . "\r\n------------------------ --------------------------\r\n", FILE_APPEND);
}
2:在类文件中引用:
2.1:use think\Log;
2.2:调用方式:
use think\Log;
public function testlog(){
Log::mylog('标题22','日志内容是这些','test20210914');//日志路径是runtime /tlogs
}
然后在日志路径是runtime /tlogs 就可以看到日志的信息了
效果如下