2026-05-09 11:23:45 +08:00
|
|
|
|
#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 <log4cplus/LOG.h>
|
|
|
|
|
|
#include <boost/assert/source_location.hpp>
|
|
|
|
|
|
#include <exception>
|
|
|
|
|
|
#include <filesystem>
|
|
|
|
|
|
#include <fstream>
|
|
|
|
|
|
#include <memory>
|
|
|
|
|
|
#include <string>
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
|
* @brief 全局Logger,负载打印Log
|
|
|
|
|
|
*/
|
|
|
|
|
|
class GbLogger {
|
|
|
|
|
|
private:
|
2026-05-09 13:30:09 +08:00
|
|
|
|
std::unique_ptr<LOG> gb_logger_;
|
|
|
|
|
|
std::unique_ptr<LOG> local_logger_;
|
2026-05-09 11:23:45 +08:00
|
|
|
|
|
2026-05-09 13:30:09 +08:00
|
|
|
|
std::string rule_id_;
|
|
|
|
|
|
std::string rule_name_;
|
2026-05-09 11:23:45 +08:00
|
|
|
|
|
|
|
|
|
|
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&&);
|
|
|
|
|
|
};
|