牛骨文教育服务平台(让学习变的简单)
博文笔记

Yii2 日志(log)配置与使用

创建时间:2016-06-22 投稿人: 浏览次数:14534

1.配置

在配置文件main.php或者main-local.php中配置参数

return [
    //日志使用时需要使用的
    "bootstrap" => ["log"],
    "components" => [
         //日志配置
         "log" => [
            "targets" => [
                /*
                 *使用文件存储日志
                 */
                "file" => [
                     //文件方式存储日志操作对应操作对象
                    "class" => "yiilogFileTarget",
                     /* 定义存储日志信息的级别,只有在这个数组的数据才能会使用当前方式存储起来
                      有trace(用于开发调试时记录日志,需要把YII_DEBUG设置为true),
                        error(用于记录不可恢复的错误信息),
                        warning(用于记录一些警告信息)
                        info(用于记录一些系统行为如管理员操作提示)
                        这些常用的。
                    */
                    "levels" => ["info","error"],
                    /**
                     * 按类别分类
                     * 默认为空,即所有。yii* 指所有以 yii 开头的类别.
                     */
                    "categories" => ["yii*"],
                ],
                /*
                 *使用数据库存储日志
                 */
                "db" => [
                     //数据库存储日志对象
                    "class" => "yiilogDbTarget",
                     //同上
                    "levels" => ["error", "warning"],
                ]
            ],
        ]
    ]
];

2.使用数据库存储日志

1.具体参数在上面配置文件中已经配置好啦。
2.cd 到项目根目录,在common模块配置好数据库配置,执行命令行创建表:
php yii migrate --migrationPath=@yii/log/migrations/
这个使用了Yii2自带的数据库迁移指令,php是安装php后设定环境变量就可以使用,yii migrate是数据库迁移指令,通过它可以做一些数据库操作,有兴趣的可以去Yii2-数据库迁移看下。
–migrationPath指定存储所有迁移类文件的目录。
@yii/log/migrations/指是文件位置,这里的位置是:
advancedvendoryiisoftyii2logmigrations
这里。
执行完这个指令,会有提示,输入yes指令,就ok啦!
查看数据库中就会出现log这个表。

3.使用文件存储日志

1.使用上边的设置既可以直接使用文件记录日志。这个日志文件的默认位置是当前项目web目录同级目录runtime/log/app.log这里。在file配置数组中增加

"logFile" => "@runtime/logssss/appsss.log",

可以更改默认日志位置。

4.使用日志记录

可以使用这种方式记录:

use yiilogLogger;
//其他代码
Yii::getLogger()->log("错误11,错误11,错误11", Logger::LEVEL_TRACE,"application");

使用这种方式存储需要使用use yiilogLogger;来引入类。
第一个参数是错误信息,第二个是错误消息的级别,级别可以去引入的类use yiilogLogger;去查看。第三个参数为日志消息的类别,默认值为application.
Yii2中还有另外一种快捷方法可以记录日志。

Yii::trace():记录一条消息去跟踪一段代码是怎样运行的。这主要在开发的时候使用。
Yii::info():记录一条消息来传达一些有用的信息。
Yii::warning():记录一个警告消息用来指示一些已经发生的意外。
Yii::error():记录一个致命的错误,这个错误应该尽快被检查。

这些函数的参数一致,都是有两个参数。第一个参数定义日志信息,第二个参数是日志消息的类别,默认值为application。
5.日志的其他操作配置
配置关闭日志,可以直接修改配置文件或者使用如下代码禁用

Yii::$app->log->targets["file"]->enabled = false;

默认日志的上下文会包括$_GET, $_POST,$_FILES, $_COOKIE, $_SESSION, $_SERVER这些信息,而这些信息是可以配置的,如下

[
    "class" => "yiilogFileTarget",
    "logVars" => ["_SERVER"],
]

上面的日志目标配置指明了只有 $_SERVER 变量的值将被追加到日志消息中。

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。