#pragma once /** * @file eqpalg/gb_logger.h * @brief eqpalg下的全局logger * @author Cat (null.null.null@qq.com) * @version 0.1 * @date 2021-07-08 * 全局logger,把log信息打印到指定的日志中 * Company: Baosight Co. Ltd. * DO NOT COPY/USE WITHOUT PERMISSION * */ #include #include #include #include #include #include #include /** * @brief 全局Logger,负载打印Log */ class GbLogger { private: std::unique_ptr gb_logger_; // 全局logger std::unique_ptr local_logger_; // 本地logger std::string rule_id_; ///<规则id std::string rule_name_; ///<规则名 public: /** * @brief Construct a new Global Logger object * @param prefix 自定义的logger前缀 */ GbLogger(std::string prefix); /** * @brief Construct a new Global Logger object * @param ruleId 算法id * @param rule_name 算法名 * 前缀是两者的加和 */ GbLogger(std::string ruleId, std::string rule_name); ~GbLogger(); /** * @brief 打印异常的方法,输出到ERROR * @param e 捕获的异常 * @return int */ int log_exception(const std::exception& e); /** * @brief 输出信息到ERROR * @return int */ int log_error(std::string&&); int log_error(const std::string&); /** * @brief 打印信息到本地的INFO * @return int */ int log_info_local_thread(std::string&&); /** * @brief 打印信息到全局的INFO * @return int */ int log_info(std::string&&); };