Skip to content

Latest commit

 

History

History
94 lines (78 loc) · 2.27 KB

logger.md

File metadata and controls

94 lines (78 loc) · 2.27 KB

如何使用burger::Logger

一、 Logger是对spdlog的封装

我们把Logger设计为一个单例类,通过下面的静态成员函数获取该类唯一的对象

Logger& Logger::Instance() {
    static Logger log;
    return log;
}

接下来,需要通过获取的对象来对底层的spdlog::logger进行初始化(名称、日志文件路径、日志等级):

bool Logger::init(const std::string& loggerName, 
                const std::string& filePath, 
                spdlog::level::level_enum level)

二、使用方法

设置全局Logger

    1. 您可以通过LOGGER()宏来设置一个默认的全局logger
#include "burger/base/Log.h"
using namespace burger;

int main(void) {
    LOGGER();
    /* 该宏等价于:
    Logger::Instance().init("Logger", "logs/log.txt", spdlog::level::info)
    */
}

    1. 如果想设置自己需要的名字和日志文件路径,可以传入参数LOGGER(path, name)
#include "burger/base/Log.h"
using namespace burger;

int main(void) {
    LOGGER(path);
    /* 该宏等价于:
    Logger::Instance().init(path, "Logger", spdlog::level::info)
    */
    Logger::shutdown();

    LOGGER(path, name);
    /* 该宏等价于:
    Logger::Instance().init(path, name, spdlog::level::info)
    */
}
    1. 如果只想改变名称(暂时这很少见),也可以使用LOGGER_WITH_NAME(name)来进行设置。

设置日志等级

  • 日志分为六个等级:
{ TRACE, DEBUG, INFO, WARN, ERROR, CRITICAL }

其中,记录CRITICAL等级的日志会导致程序ABORT


  • 如果需要设置日志等级,可以使用下列宏:
// 修改日志等级
LOG_LEVEL_DEBUG;
LOG_LEVEL_INFO;
......

记录日志信息

  • BurgerLogger可以方便地记录日志信息:
TRACE("TRACE");
DEBUG("DEBUG");
INFO("INFO");
WARN("WARN");
DEBUG("DEBUG");
CRITICAL("CRITICAL");

但是只有等级大于等于当前日志等级的信息会被记录(例如等级为DEBUG试,这里的TRACE信息就不会被输出)!


  • 如果需要格式化输出,只需要在您需要变量出现的位置,使用{}代替即可:
INFO("Now is {} and my name is {}", Timestamp::now().toFormatTime(), name);