Yii::尽管配置值存在,但在日志中从未找到trace



我的日志配置如下:

'log' => [
    'traceLevel' => getenv('YII_DEBUG') ? getenv('YII_TRACELEVEL') : 0,
    'targets' => [
        [
            'class' => 'yiilogFileTarget',
            'except' => ['yiidb*'],
            'levels' => ['profile', 'trace', 'info', 'warning', 'error'],
            'logFile' => '@app/log/app.log',
            'logVars' => [],
            'maxFileSize' => 1024 * 20,
        ],
    ],
],

但是当我调用所有不同级别的日志时,我似乎无法得到输出到我的app.log的跟踪。

这里是我们输入代码的地方,只是作为我如何调用日志的一个例子:

public function actionCreate() {
Yii::trace("trace");
Yii::info("info");
Yii::warning("warning");
Yii::error("error");
return;

和在app.log中找到的输出:

2016-10-24 19:15:58 [127.0.0.1][-][-][info][application] info
2016-10-24 19:15:58 [127.0.0.1][-][-][warning][application] warning
2016-10-24 19:15:58 [127.0.0.1][-][-][error][application] error

我已经玩了添加/从级别列表中删除级别,以及输出到codemixstreamlogTargets php://stdout和php://stderr,除了跟踪级别日志之外的一切似乎都像您期望的那样从配置中工作。看起来我做的是正确的,根据在权威Yii2指南中找到的文档。

也许我的目标中遗漏了什么?我在这里看到有人有类似的问题,但他们只是在他们的目标级别列表中缺少跟踪,并且没有回应他们是否解决了他们的问题。如果您能提供任何建议,我将非常感谢。

您是否在app/web/index.php中定义了YII_DEBUG ?

defined('YII_DEBUG') or define('YII_DEBUG', true);

代码

'traceLevel' => getenv('YII_DEBUG') ? getenv('YII_TRACELEVEL') : 0,

表示,如果没有定义YII_DEBUG, traceLevel将为0。根据文档,traceLevel公共属性的定义如下:

应该有多少调用堆栈信息(文件名和行号)记录每条消息。如果大于0,则最多等于0所有的调用堆栈都将被记录。注意,只有应用程序调用堆栈计算。

在yourApp/web/index.php中设置YII_DEBUG,或者修改traceLevel属性

最新更新