import logger, { loggerLevel } from '../common/logger';

export default {
  /**
   * 日志实例
   * @namespace logger
   */
  logger: {
    /**
     * Debug日志
     * @eapi
     * @param {...any} msg 任意传参
     * @returns {void} 调用结果
     */
    debug(...msg) {
      return logger.debug(...msg);
    },

    /**
     * 信息日志
     * @eapi
     * @param {...any} msg 任意传参
     * @returns {void} 调用结果
     */
    info(...msg) {
      return logger.info(...msg);
    },

    /**
     * 警告日志
     * @eapi
     * @param {...any} msg 任意传参
     * @returns {void} 调用结果
     */
    warn(...msg) {
      return logger.warn(...msg);
    },

    /**
     * 报错日志
     * @eapi
     * @param {...any} msg 任意传参
     * @returns {void} 调用结果
     */
    error(...msg) {
      return logger.error(...msg);
    },

    /**
     * @edata
     * @typedef {number} LogLevel 日志等级；取值说明:
     * 1 Debug放开所有;
     * 2 Info消息以上;
     * 3 Warn警告以上;
     * 4 Error报错以上;
     */

    /**
     * 设置报错等级
     * @param {LogLevel} level 日志等级
     * @returns {Promise<void>} 调用结果
     */
    setLevel(level) {
      return loggerLevel.setConfig({ level });
    },

    /**
     * @edata
     * @typedef {Object} LoggerConfig 配置信息
     * @property {LogLevel} [level] 日志上报等级
     * @property {LogLevel} [printLevel] 日志打印等级
     */
    /**
     * 设置日志配置
     * @eapi
     * @param {LoggerConfig} config 输入参数
     * @returns {Promise<boolean>} 调用结果
     */
    setConfig(opt) {
      return loggerLevel.setConfig(opt);
    }
  }

}