入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

yii2 log的使用

创建时间:2015-11-17 投稿人: 浏览次数:122

文档:http://www.yiichina.com/doc/guide/2.0/runtime-logging

1.在frontend/config/main.php 中进行加入log的配置


"log" =>[
			# 追踪级别
			# 消息跟踪级别
			# 在开发的时候,通常希望看到每个日志消息来自哪里。这个是能够被实现的,通过配置 log 组件的 yiilogDispatcher::traceLevel 属性, 就像下面这样:
			"traceLevel" => YII_DEBUG ? 3 : 0,
			
			# 通过 yiilogLogger 对象,日志消息被保存在一个数组里。为了这个数组的内存消耗, 当数组积累了一定数量的日志消息,日志对象每次都将刷新被记录的消息到 log targets 中。 你可以通过配置 log 组件的 yiilogDispatcher::flushInterval 属性来自定义数量
			"flushInterval" => 1,
			
            "targets" => [
                "file" =>[
					//"levels" => ["warning"],
					"categories" => ["mylog"],
                    "class" => "yiilogFileTarget",
					# 当 yiilogLogger 对象刷新日志消息到 log targets 的时候,它们并 不能立即获取导出的消息。相反,消息导出仅仅在一个日志目标累积了一定数量的过滤消息的时候才会发生。你可以通过配置 个别的 log targets 的 yiilogTarget::exportInterval 属性来 自定义这个数量,就像下面这样:
                    "exportInterval" => 1,
					# 输出文件
					"logFile" => "@app/runtime/logs/my.log",
					# 你可以通过配置 yiilogTarget::prefix 的属性来自定义格式,这个属性是一个PHP可调用体返回的自定义消息前缀
					"prefix" => function ($message) {
						
						return $message;
					},
					# 除了消息前缀以外,日志目标也可以追加一些上下文信息到每组日志消息中。 默认情况下,这些全局的PHP变量的值被包含在:$_GET, $_POST, $_FILES, $_COOKIE,$_SESSION 和 $_SERVER 中。 你可以通过配置 yiilogTarget::logVars 属性适应这个行为,这个属性是你想要通过日志目标包含的全局变量名称。 举个例子,下面的日志目标配置指明了只有 $_SERVER 变量的值将被追加到日志消息中。
					# 你可以将 logVars 配置成一个空数组来完全禁止上下文信息包含。或者假如你想要实现你自己提供上下文信息的方式, 你可以重写 yiilogTarget::getContextMessage() 方法。
					 "logVars" => [],
                ],
            ],
        ],

新建log文件,在logFile中的配置:app/runtime/logs/my.log

log的使用如下:  第一行是对file的关闭,

//Yii::$app->log->targets["file"]->enabled = false;
		Yii::info("222","mylog");

222代表是log数据的输出  mylog是上面配置的categories
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。