Yii2-日志文件(app.log)以及如何访问它们?

rch*_*hrd 4 methods logging parsing file yii2

我对Yii2中的日志有疑问。我想要

1.)访问日志文件(基本应用程序/高级应用程序)
2.)通过使用正则表达式解析它们(将日志的每个部分分开,我部分知道,如何做)
3.)通过使用显示它们小部件(在我要指定的小部件中,我要2显示的内容)

现在,当我要处理这些日志时,我正在努力使用哪种方法。我知道他们在:中app\frontend|backend|console\runtime\logs\app.log,但是由于我仍然是Yii2新手,所以我真的不知道如何执行类似的操作。每个答案将不胜感激!谢谢

ope*_*org 10

您可以使用yii2在任何地方记录日志。

您可以根据所使用的应用程序设置在配置文件中定义自己的日志。

http://www.yiiframework.com/doc-2.0/yii-log-target.html

检查网页部分下的配置文件,您将看到类似以下内容:

    // Logging
    'log' => [
        'targets' => [
            // writes to php-fpm output stream
            [
                'class' => 'codemix\streamlog\Target',
                'url' => 'php://stdout',
                'levels' => ['info', 'trace'],
                'logVars' => [],
                'enabled' => YII_DEBUG,
            ],
Run Code Online (Sandbox Code Playgroud)

您可以像这样添加新的煎饼:

                [
                'class' => 'yii\log\FileTarget',
                'levels' => ['info', 'trace', 'error', 'warning'],
                'categories' => ['mycategory'],
                'logVars' => [],
                'logFile' => '@runtime/logs/myfolder/myfile.log',
            ],
Run Code Online (Sandbox Code Playgroud)

要将行添加到此日志中,您将使用类似以下内容的代码:

\Yii::info("hi there", 'mycategory');
Run Code Online (Sandbox Code Playgroud)

关于如何在代码中获取此路径,就像在配置文件中创建别名一样简单:

http://www.yiiframework.com/doc-2.0/guide-concept-aliases.html

Yii::setAlias('@runtime', dirname(__DIR__) . '/../../runtime/logs/myfolder');
Run Code Online (Sandbox Code Playgroud)

其余的主要是php函数,例如读取文件

http://www.w3schools.com/php/php_file_open.asp

然后搜索模型,将数据从控制器传递到视图等