Yii2:如何在使用 Codeception 进行测试时将日志写入文件?
Yii2: how to write logs in file while testing with Codeception?
我已经在主配置中使用 FileTarget
设置了 log
组件,预计 Yii::error()
会在我启动测试时在文件中写入消息。但是日志记录被 Codeception\Lib\Connector\Yii2\Logger
赶上了,日志文件夹仍然是空的。
这种情况下Yii2可以写日志吗?
<?php
namespace tests;
class SomeTest extends \yii\codeception\TestCase
{
public function testLogMessage()
{
\Yii::error('something bad occurred');
}
}
这正确地在 runtime/log/app.log 下记录了错误消息:
2018/05/05 03:42:04 [127.0.0.1] [error] [application] 发生错误
您可以在测试前配置正确的记录器:
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
}
我已经在主配置中使用 FileTarget
设置了 log
组件,预计 Yii::error()
会在我启动测试时在文件中写入消息。但是日志记录被 Codeception\Lib\Connector\Yii2\Logger
赶上了,日志文件夹仍然是空的。
这种情况下Yii2可以写日志吗?
<?php
namespace tests;
class SomeTest extends \yii\codeception\TestCase
{
public function testLogMessage()
{
\Yii::error('something bad occurred');
}
}
这正确地在 runtime/log/app.log 下记录了错误消息:
2018/05/05 03:42:04 [127.0.0.1] [error] [application] 发生错误
您可以在测试前配置正确的记录器:
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
}