我对Yii2中的日志有疑问。我想要
1.)访问日志文件(基本/高级应用程序)
2.)使用正则表达式解析它们(将日志的每个部分分开,我部分知道,如何操作)
3.)通过使用小部件显示它们(在我要指定的小部件中,我想要2显示的内容)
现在,当我想处理这些日志时,我正在努力,使用哪种方法。我知道他们在:app\frontend|backend|console\runtime\logs\app.log
,但由于我仍然是Yii2新手,我真的不知道,如何执行这样的行动。每个答案都将不胜感激!谢谢
答案 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选项。