C++ 日志输出(宏定义)
文章目录
- 一、简介
- 二、实现代码
- 三、实现效果
一、简介
这里定义一些简单的日志输出宏定义,主要是为了方便后续的使用,后面也会在此基础上进一步完善,现阶段仅仅提供几个最基础的函数。
二、实现代码
这里依赖于之前的对字符格式化输出,相关的代码可以参阅之前的博客。
Log.hpp
#pragma once#include "FMTString.hpp"//
// 定义一些检查函数
//#define CHECK_STRING_FMT_LOG(description, ...) \std::printf( \"[%s:%d] %s", __FILE__, __LINE__, \::FMT::formatString(description, ##__VA_ARGS__).c_str())#define CHECK_STRING_FMT_PRINT(description, ...) \std::printf( \"%s\n", \::FMT::formatString(description, ##__VA_ARGS__).c_str())#define CHECK_ENSURE_FAILED(description, ...) \do { \CHECK_STRING_FMT_LOG("CHECK_ENSURE failed:"); \CHECK_STRING_FMT_PRINT(description, ##__VA_ARGS__); \} while (false)//std::abort(); \ // 如果遇到错误,会强制停止#define CHECK_ENSURE(expr, description, ...) \do { \if (!(expr)) { \CHECK_ENSURE_FAILED(description, ##__VA_ARGS__); \} \} while (false)
main.cpp
// 标准文件
#include <iostream>
#include <string>#include "Log.hpp"int main(int, char** argv)
{CHECK_ENSURE(1 == 0, "1 == 0 is false!");system("pause");return 0;
}
三、实现效果
