我在主配置中设置了log
组件FileTarget
,当我启动测试时,预期Yii::error()
会在文件中写入消息。但是Codeception\Lib\Connector\Yii2\Logger
抓住了日志记录,日志文件夹仍为空。
在这种情况下是否可以制作Yii2写日志?
答案 0 :(得分:1)
<?php
namespace tests;
class SomeTest extends \yii\codeception\TestCase
{
public function testLogMessage()
{
\Yii::error('something bad occurred');
}
}
这正确地记录了运行时/ log / app.log下的错误消息:
2018/05/05 03:42:04 [127.0.0.1] [错误] [申请]发生了一些不好的事情
答案 1 :(得分:1)
您可以在测试前配置正确的记录器:
public function testSomething() {
Yii::setLogger(Yii::createObject(\yii\log\Logger::class));
Yii::$app->log->setLogger(Yii::getLogger());
// log something
Yii::getLogger()->flush();
// test log file
}