| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- <?php
- /**
- * Yii日志代理,主要用于封装日志
- * @author zhaoqin
- */
- class Logger
- {
- /**
- * 路由信息
- * @var string
- */
- public static $route = '';
- /**
- * 用于致命错误信息
- * @param string $msg - 日志内容
- */
- public static function error($msg)
- {
- self::_log($msg, \CLogger::LEVEL_ERROR);
- }
-
- /**
- * 用于警告信息
- * @param string $msg - 日志内容
- */
- public static function warn($msg)
- {
- self::_log($msg, \CLogger::LEVEL_WARNING);
- }
- /**
- * 用于记录普通的信息
- * @param mixed $msg - 日志内容
- */
- public static function info($msg)
- {
- self::_log($msg, \CLogger::LEVEL_INFO);
- }
- /**
- * 用于记录普通的信息 (限制记录时间) 用于debug调试一段时间,后面又懒得删除的场景
- * @param mixed $msg - 日志内容
- * @param string $deadline - 记录截止时间
- */
- public static function infoUntil($msg, $deadline)
- {
- if ($deadline && strtotime($deadline) > time()) {
- self::_log($msg, \CLogger::LEVEL_INFO);
- }
- }
- /**
- * 打印多个参数的方法
- *
- * @param mixed ...$msgs
- * @return void
- */
- public static function infoMult(...$msgs)
- {
- // if (LWM_ENV != 'prod') {
- $all_msg = '';
- foreach ($msgs as $key => $msg) {
- $msg = var_export($msg, true);
- $all_msg .= $msg.'|';
- }
- $all_msg .= date('Y-m-d H:i:s');
-
- self::_log($all_msg, \CLogger::LEVEL_INFO);
- // }
- }
- /**
- * 打印多个参数的方法
- *
- * @param mixed ...$msgs
- * @return void
- */
- public static function gray(...$msgs)
- {
- // if (LWM_ENV != 'prod') {
- $all_msg = '';
- foreach ($msgs as $key => $msg) {
- $msg = var_export($msg, true);
- $all_msg .= $msg.'|';
- }
- $all_msg .= date('Y-m-d H:i:s');
- self::_log($all_msg, \CLogger::LEVEL_INFO);
- // }
- }
- public static function errorMult(...$msgs)
- {
- $all_msg = '';
- foreach ($msgs as $key => $msg) {
- $msg = var_export($msg, true);
- $all_msg .= $msg.'|';
- }
- $all_msg .= date('Y-m-d H:i:s');
-
- self::_log($all_msg, \CLogger::LEVEL_INFO);
- }
- /**
- * 用于记录debug的信息
- * @param string $msg - 日志内容
- */
- public static function debug($msg)
- {
- // if (in_array(LWM_ENV, ['dev', 'test'])) {
- self::_log($msg, \CLogger::LEVEL_INFO);
- // }
- }
- private static function _log($msg, $level)
- {
- if (is_object($msg) || is_array($msg)) {
- $msg = var_export($msg, true);
- }
- //获取输入日志的上下文环境
- $bt = debug_backtrace(0, 3);
- $category = 'application';
- if (defined('LWM_APP_ID')) {
- $category = LWM_APP_ID;
- }
- $msg .= " ["; //附加调试参数
- if (count($bt) == 3) {
- $callContext = $bt[2];
- //处理名字空间,兼容 yii日志分类格式
- // $newCategory = str_replace("\\", ".", $callContext['class']);
- $newCategory = isset($callContext['class']) ? $callContext['class'] : '';
- $newCategory .= '::' . $callContext['function'];
- // if (isset($callContext['line'])) {
- // $newCategory .= '-' . $callContext['line'];
- // }
- $msg .= "class={$newCategory}";
- // $category = $category . '.' . $newCategory;
-
- //附加函数参数
- $args = $callContext['args'];
- if (!empty($args)) {
- $args = json_encode($args);
- $msg .= " args={$args}";
- }
- }
- $msg .= ']';
- $msg .= ' request_id: '.LWM_REQUEST_ID;
- \Yii::log($msg, $level, $category);
- }
- }
|