thinkphp5里面默认存放在File文件系统中,我们可以修改储存位置,下面是修改成mongoDb的例子:
一、在config.php里面的log数组修改File成你的日志类(我以log目录下面的Mongo类为例):
'log' => [ 'type' => '\\log\\Mongo', 'level' => ['error','sql','info'], // 日志开关 1 开启 0 关闭 'switch' => 1, ],
二、编写对应的类:
<?php namespace log; class Mongo { // 实例化并传入参数,主要用于动态化配置 public function __construct($config = []) { } /** * 日志写入接口 * @access public * @param array $log 日志信息 * @param bool $depr 是否写入分割线 * @return bool */ public function save(array $log = [], $depr = true) { $arr = []; foreach ($log as $type => $error) { foreach ($error as $msg) { $arr[] = [ 'addTime' => date('Y-m-d H:i:s'), 'type' => $type, 'error' => $msg ]; } } $this->add($arr); return true; } //操作写入数据库 private function add($arr) { // 连接MongoDB,实际上用上面构造还是动态化的配置哈 $manager = new \MongoDB\Driver\Manager("mongodb://localhost:27017"); $database = "yyz"; $collection = "error_log"; $res = null; foreach ($arr as $item) { // 构建插入操作 $bulk = new \MongoDB\Driver\BulkWrite; $bulk->insert($item); // 执行插入操作 $res[] = $manager->executeBulkWrite("$database.$collection", $bulk); } return true; } }
打开MongoDb数据库查看结果:
也就是这个怎么处理日志就自定义了,可以异步发送到远程的日志系统......