SystemLogHelper.php 1.47 KB
<?php

namespace common\helpers;

use Yii;

/**
 * 系统日志助手
 * Class SystemLogHelper
 * @package common\helpers
 */
class SystemLogHelper
{
    /**
     * 系统错误日志分类
     */
    const CAT_APP_API   = "app_api";
    const CAT_APP_DD    = "app_dd";
    const CAT_APP_HT    = "app_ht";
    const CAT_APP_PAY   = "app_pay";
    const CAT_APP_USER  = "app_user";
    const CAT_APP_WX    = "app_wx";
    const CAT_CONSOLE   = "console";

    /**
     * 初始化系统日志配置的开关
     * 调用方法:  在app-xx各个应用的BaseController::init()方法调用
     * SystemLogHelper::init(true, true, false); // 启用文件和数据库日志、禁用邮件发送管理员
     */
    public static function init($enableFile = true, $enableDB = true, $enableEmail = true)
    {
        Yii::$app->log->targets['file']->enabled = $enableFile;
        Yii::$app->log->targets['db']->enabled = $enableDB;
        Yii::$app->log->targets['email']->enabled = $enableEmail;
    }

    /**
     * 系统严重错误日志记录, 写入数据库之后, 可以按分类管理
     * @param $message
     * @param string $category 指定应用分类, 如: app_api/app_dd/app_ht/app_pay/app_user/app_wx/console
     * 调用示例:
     * SystemLogHelper::error('工程师自动提现转账失败, 微信商户号余额不足', SystemLogHelper::CAT_CONSOLE);
     */
    public static function error($message, $category = 'application')
    {
        Yii::error($message, $category);
    }
}