命令行下 trace() 方法报错 Segmentation fault

浏览:725 发布日期:2017/07/09 分类:ThinkPHP5专区 关键字: trace() 报错, Segmentation
我自定义了一个 MySQL 日志驱动,在网页运行时,使用 trace() 函数 可以正常记录日志信息到 MySQL,而在命令行下 使用 trace() 函数会报错: Segmentation fault。

通过不断调试、排错,终于找到问题所在:
MySQL 日志驱动前面的代码都没问题,在最后保存到数据库时就报错了:
……
\think\Db::name($table)->insert($errorLog);

写数据库时报 Segmentation fault。

修正方法如下:

thinkphp\library\think\Log.php
89 行:

if (IS_CLI) {
// 命令行下面日志写入改进
self::save();
}

把 self::save(); 改为 self::write($msg, $type);

就好了!

希望官方在下一版修正!
最佳答案
评论( 相关
后面还有条评论,点击查看>>