1.配置log.php文件,文件位置在config/log.php
主要是设置max_files和realtime_write
'channels' => [
'file' => [
// 日志记录方式
'type' => 'File',
// 日志保存目录
'path' => '',
// 单文件日志写入
'single' => false,
// 独立日志级别
'apart_level' => [],
// 最大日志文件数量
'max_files' => 30,
// 使用JSON格式记录
'json' => false,
// 日志处理
'processor' => null,
// 关闭通道日志写入
'close' => false,
// 日志输出格式化
'format' => '[%s][%s] %s',
// 是否实时写入
'realtime_write' => true,
],
2.在公共的接口中调用方法实现每访问一个接口就存储一下请求的参数
use think\facade\Log;
//记录访问接口和参数
$this->visitlog();
//记录访问日志
private function visitlog()
{
Log::write($_REQUEST,'info');
}
3.在接口的try-catche中捕获错误写入错误日志信息
use think\facade\Log;
public function logtest()
{
$result = false;
DB::startTrans();
try {
echo 1/0;
DB::commit();
$result=true;
}catch (ValidateException $e) {
DB::rollback();
// 这是进行验证异常捕获
$this->BackResult('100',$e->getError());
} catch (\Exception $e) {
DB::rollback();
$content='错误文件位置:'.$e->getFile().'|错误行号:'.$e->getLine().'|错误信息:'.$e->getMessage().'|';
Log::write($content,'error');
// 这是进行异常捕获
$this->BackResult('101',$e->getMessage());
}
if ($result !== false) {
$this->BackResult('0', '授权成功');
} else {
$this->BackResult('1','请重新提交');
}
}