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

时间:2017-02-05 19:07:34

标签: file parsing logging methods yii2

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

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

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

2 个答案:

答案 0 :(得分:7)

您可以使用yii2将日志放在任何位置。

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

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

检查网络部分下的配置文件,你会看到类似的内容:

                [
                'class' => 'yii\log\FileTarget',
                'levels' => ['info', 'trace', 'error', 'warning'],
                'categories' => ['mycategory'],
                'logVars' => [],
                'logFile' => '@runtime/logs/myfolder/myfile.log',
            ],

你可以像这样添加新的ragets:

\Yii::info("hi there", 'mycategory');

要在此日志中添加行,您将使用以下内容:

Yii::setAlias('@runtime', dirname(__DIR__) . '/../../runtime/logs/myfolder');

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

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

#

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

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

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

答案 1 :(得分:1)

你能更好地定义你的意思吗?就像open-ecommerce.org指出的那样,你的日志文件有不​​同的目标。默认情况下,它会写入文件,但是还有更多目标,它们也可以组合在一起。例如,您可以为常规日志设置文件日志目标,但是当发生异常时,您可以发送电子邮件(以及文件上的详细信息)以更快地(或更慢地)查看它们。)

有些选择:
 1.档案,就像你说的那样  2.数据库,根据您的配置,数据库目标可能比文件目标更快。请记住,所有日志记录都有资源成本  3. Syslog,如果你需要与某些企业日志记录解决方案集成,那就相当不错了  4.电子邮件,发生事件时发送电子邮件,电子邮件有好消息和不好的部分 我尚未与之合作的其他人。

如果你需要解析日志,我可能会选择DB选项。